我正在尝试通过 bash shell 脚本将 sql 查询传递给 java 类,该脚本从外部 EnvFile.properties 获取查询。属性文件中的查询如下所示:
DDAQUERY1=SELECT COUNT(1), marketsectordescription FROM PRODUCT GROUP BY marketsectordescription ORDER BY marketsectordescription
查询失败并出现以下错误:
java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
传递给脚本的值如下所示(如 Jenkins 的控制台输出窗口所示):
SELECT 'COUNT(1),' marketsectordescription FROM PRODUCT GROUP BY marketsectordescription ORDER BY marketsectordescription
由于单引号 (') 出现在带有括号的语句附近,因此括号显然会产生某种问题。这实际上是怎么回事?可以做些什么来解决这个问题?
使用以下 Jenkins 插件将 env 变量注入到构建中: https ://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
编辑:
看来不是括号,而是空格。这是我从道具文件> bash脚本参数传入的内容:
ddaquery1=SELECT COUNT,marketsectordescription 从产品组按市场扇区描述排序按市场扇区描述
ddaquery2=从发行者选择计数(不同(smci))
这是进入 java 应用程序的内容:
ddaquery1:选择 ddaquery2:计数,
空格分隔字符串并使空格后的每个单词成为单独的 arg[]。有谁知道我该如何解决这个问题?
谢谢