Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jOOQ-使用QueryPart占位符解析普通sql_Java_Sql_Parsing_Jooq - Fatal编程技术网

Java jOOQ-使用QueryPart占位符解析普通sql

Java jOOQ-使用QueryPart占位符解析普通sql,java,sql,parsing,jooq,Java,Sql,Parsing,Jooq,我有一个字段,它是用MSSQL方言中的纯Sql字符串创建的,由于语法复杂,无法提供给解析器。我有一个简单的sql字符串,带有PostgreSQL方言中的查询部分占位符,如下所示: String myComplexSqlString = "({0} + sum({1}::integer)::text || {3}" 是否有任何方法可以解析此SQL并在解析步骤后插入所需的所有查询部分,并将整个字段呈现为MSSQL方言?有什么建议吗?这目前不可能,但听起来确实很有趣。我已为此创建了一个功能请求:

我有一个字段,它是用MSSQL方言中的纯Sql字符串创建的,由于语法复杂,无法提供给解析器。我有一个简单的sql字符串,带有PostgreSQL方言中的查询部分占位符,如下所示:

String myComplexSqlString = "({0} + sum({1}::integer)::text || {3}"

是否有任何方法可以解析此SQL并在解析步骤后插入所需的所有查询部分,并将整个字段呈现为MSSQL方言?有什么建议吗?

这目前不可能,但听起来确实很有趣。我已为此创建了一个功能请求:

目前,在您的示例中,没有任何东西阻止您使用jOOQ的API来构造这个“复杂SQL”:

字段complexSQL(字段arg1、字段arg3){
返回cast(arg0.add(sum(cast(arg1,整数))),CLOB.concat(arg3);
}

如果您感兴趣的话,我想更详细地讨论这个用例:我使用这个字符串作为示例。不过还是要谢谢你。@NikitaLygin:我一直在努力为你和这个问题的未来读者写一个答案。我确信使用jooqapi编写这个表达式可能不会对您起作用,但它可能会对其他人起作用。
Field<String> complexSQL(Field<? extends Number> arg0, Field<?> arg1, Field<?> arg3) {
    return cast(arg0.add(sum(cast(arg1, INTEGER))), CLOB).concat(arg3);
}