问题标签 [sql-parser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
198 浏览

derby - 在没有真实表的情况下使用 Derby 解析 SQL?

我是 Derby 的新手,正在尝试确定其中的 SQL 解析器是否可以与真实数据库分开使用。例如,我希望能够获取 SQL 语句中引用的表的列表。我相信这可以通过从给定的 jdbc 嵌入式驱动程序连接中获取 ContextManager 来完成,然后从查询树中获取结果集节点(参见http://rickosborne.org/blog/2010/02/derby-svn-coldfusion -sql-解析器/ )。

我遇到的问题是 SQL 中的表实际上并不存在于 Derby DB 中(并且 Derby 正确地检查了这一点并以 java.sql.SQLSyntaxErrorException: "Table/View 'FOO' does not exist .") 那么...有没有办法配置连接,以便在执行 prepareStatement(sql) 时不检查表的存在?(连接是使用 driver.connect("jdbc:derby:memory:dummy;create=true",props) 创建的)

0 投票
0 回答
1559 浏览

c# - Microsoft.SqlServer.TransactSql.ScriptDom:TSqlTokenType

在解析 SQL 查询时,例如:

并通过 TSqlParserToken 迭代有一个名为 TokenType 的属性。我得到以下信息:

我知道为了让解析器返回这些值,它需要了解底层架构。我是否可以为解析器提供底层对象,以便它可以返回一组更敏感的标记?

TSqlTokenType 枚举还具有诸如“表”、“模式”、“视图”之类的值,所以我确信这一定是可能的。只是文档稀缺。担

0 投票
2 回答
1372 浏览

c# - 存储过程解析器

我试图解析数百个存储过程,以专门获取它们的输出变量“@FirstName”、它们使用哪些表以及它们从“MyTbl.FirstName”中提取哪些字段。我能够很容易地收集变量,但我在收集表名时遇到了麻烦。有人可以帮忙吗?

到目前为止,我已经能够通过使用 StreamReader 解析 SQL 文件并逐行收集信息来提取这些字段中的大部分,例如,如果一行包含输出,那么我知道该行中的第一个文本很可能是@多变的。

从那里我可以将@Variable 存储到字典中,如果任何行包含@Variable 并且还包含'=',那么我知道我们有一个匹配它对应的字段。

现在我只是在收集表名时遇到问题。我可以轻松地从字段名称中解析表别名,但在将别名与表名匹配时遇到问题。有谁知道这样做的好方法?这是我到目前为止一直在尝试的:

代码:

我认为这将与表别名匹配,因为大多数别名都是一个字母,后跟一个换行符,但到目前为止我还没有得到任何表名......有人知道吗?

0 投票
1 回答
130 浏览

php - 用于解析 mysql 创建查询并获取与现有表的差异的 PHP 库

我搜索获取“CREATE TABLE”查询并返回差异的 PHP 库,如果该表已经存在例如我有表“table1”

然后我解析查询:

解析器返回 2 个查询:

你能告诉我可以做到这一点的php库吗?

0 投票
2 回答
3154 浏览

c# - 通过c#.net从查询中获取表名

我的任务是编写一个函数,该函数将作为字符串传递一个 sql 查询,它应该将这个查询解析为它找到的任何表前面的“tablename”。我已经得到了一些代码作为示例(它只是寻找“来自”和“哪里/内部/外部/左/右”等的实例......并假设中间的单词是一个表格......这是在 C# 中完成

我真正寻找的是最好的方法的指针......(虽然简短的是我将传递一个字符串,我将返回一个字符串,所以如果你有任何想法,请记住这一点!)

我曾尝试对以下示例查询使用 Sql 解析器,但它对我没有帮助

我使用的代码是

列出的查询是什么,例如

1)嵌套查询 2)子查询 3)联合查询

我无法检索该查询中指定的表名

等待您的回复和评论

0 投票
3 回答
6782 浏览

java - 如何使用 JSQLPARSE 从 SQl 中检索表名和列名

我是第一次使用 JSQLPARSER。我有一些动态出现的 SQL 文件,我需要从该 SQL 中读取表名和列名。经过大量谷歌搜索后,我尝试使用 JSQLPARSER。我正在尝试从文件中读取列名,但由于表达式而无法读取列名,请任何人纠正我出错的代码。我得到 CLASSCASTEXCEPTION 代码:

0 投票
2 回答
2783 浏览

java - 有人知道是否存在开源 SQL 解析器吗?

我正在搜索一个用 Java 编写的开源 SQL 解析器。我只创建了这个满足我需求的商业软件:http ://www.sqlparser.com/sql-parser-java.php

0 投票
2 回答
1461 浏览

java - 无法从 jsqlparser 库导入包

我将 jar jsqlparser-0.7.0 添加到了我的 Netbeans IDE(在库上右键单击/添加 Jar 文件),但我仍然无法使用它的包。可能是什么原因 。该库是在 2011 年创建的,它可能不被 JDK7 支持?

在此处输入图像描述

0 投票
1 回答
568 浏览

c# - c# sqlparser (gudusoft) 从对象中检索字符串属性:太慢了

我正在使用 gudusoft (sqlparser.com) 提供的 sqlparser(c#),不确定之前是否有人使用过。

sqlparser 提供了一个解析器对象,您可以在其中输入一个 sql 字符串。然后通过调用 parse() 方法,您可以获得所有标记、标签等。解析器构建得很好。

这是我使用它的方式,非常简单:

第 1-3 行的工作效率非常高(在不到一秒的时间内完成)。但是,第 4 行非常慢(可能需要一分钟或更长时间)。令人困惑的是,通过使用调试器,我发现 parser.XmlText 已经生成并准备好在第 3 行访问。第 4 行仅用于访问该值。

为什么访问一个值比实际生成它要慢得多?

我是 c# 的新手,不确定是这个特定解析器的问题还是 c# 的一般问题。

谢谢!

0 投票
0 回答
401 浏览

java - 使用 Eclipse DTP 的 SQLQueryParserManager 提取子查询详细信息

我正在使用 eclipse SQLQueryParserManager 从 sql 查询中提取表名和列名。如果我使用正常查询,我会得到正确的详细信息。但是当我在查询中使用子查询时,我无法获取子查询的详细信息。

这是我所做的:

谁能建议我必须使用什么才能获得子查询结果?