问题标签 [jsqlparser]
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.
java - JSqlParser - 从列中获取表名
我刚刚开始探索 JSqlparser。根据我的理解,我已经修改了 TablesNamesFinder 以提取列和表,它的工作正常但一个很小的问题。
这不会打印表格,在大多数情况下它会打印 null 并且在极少数情况下它会打印表格的别名但不打印表格。有什么我忘记了吗?
其余访问
oracle - JSQLParser 和 Oracles LNNVL(类似于 IIF)
我想扩展 JSQLParser 以便它接受IIF
oracle 的命令。以下 stmt 产生异常,因为该函数使用表达式:
SELECT LNNVL(A > 10, 1, 0) FROM TBL_NAME;
你介意给我提示如何更改 jj 文件吗?
变化
IIF
替换为LNNVL
. LNNVL
仅在 WHERE 条件下有效,但不会引发异常。
java - 如何使用 Jsql Parser 从 FROM 子句中获取子查询?
我有一个示例 sql 查询,例如
我需要使用 jsql 解析器从 sql 中获取 FROM 子句,我需要删除不需要的括号?
我尝试了以下
有更好的方法吗?
java - 如何使用 JSqlparser 解析具有子查询的查询
我正在尝试解析具有如下子查询的查询:
通过在 java 中使用JSqlParser。是否可以使用 JSqlParser 解析它?如果没有,请提出更好的方法。
java - 从 SQL/HQL Java 解析表和列名
我正在寻找 Java 中的开源 API 来解析 SQL / HQL 查询,以便它为我提供其中使用的列名和表名。我尝试使用 JSQLParser,它为我提供了查询中使用的表名。但我看不到对获取查询中使用的列名的支持。有没有其他 API 可以帮助我解决这个问题?我知道通用 SQL 解析器,但它似乎是付费的。
这是使用 JSQLParser 的代码片段,它为我提供了查询中的表名:
提前感谢您在这方面的任何帮助。
java - 如何在 Jsqlparser 中对访客进行单元测试?
我已经实现了 JSqlparser 的访问者来解析 SQL 查询。代码工作得很好。我不确定如何为这些访问者进行单元测试。例如我有以下 sql 语句:
为了解析它,我实现了 StatementVisitor 接口,我的代码如下所示:
然后我在另一个类中调用它,如下所示:
我想为我的 StmntVisitorImpl、SelectVisitorImpl 和其他实现 JSqlparser 给出的访问者接口的类编写单元测试用例。我该怎么做?
java - JSqlParser - 漂亮的打印 where 子句
我已经开始使用 JSqlParser,我可以解析 Where 子句,但我无法进一步使用它。
事实上,我曾尝试覆盖访问方法,但不明白如何达到我的目标。
假设我有:(a=1 AND (b=2 OR (c=3 AND d=4))) OR e=2
作为输入,我想作为输出:
我的最终目标不是漂亮的打印,而是了解如何知道给定状态下打印的当前深度。为了随心所欲地挖树。
我已经开始了一段代码,解析 where 子句:
你能告诉我如何开始这种事情吗?我必须使用访问方法还是我错了?
谢谢 !
sql - JSqlParser:CCJSqlParserUtil.parse(sql) 异常;
在 sqlserver 2008 中:
在SSMS中执行以上两条语句,结果是一样的。
但是当我使用格式化sql 1和2的方法时:</p>
第一个抛出异常,我不能使用 Subquery AS 'PIVOT' ResultSet。
像这样的异常消息:
请帮我!
java - JSqlParser for 'create table as ..' 查询
JSqlParser 中是否有任何选项可以解析查询,例如
java - jsqlparser 评估条件
以下字符串:
产生一个有效的输出:x=92 AND y=29
它可以正常工作,CCJSqlParserUtil.parseCondExpression
但它不应该抛出以下异常吗?
但输出只是:x=92
此外,我应该使用哪个表达式来实现我自己的访问者?IE,
这样当遇到“lasd”(不是,或,和以外的任何东西)时,我可以抛出异常而不是默默地忽略表达式的其余部分?