Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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中的转义逗号_Java_Sql - Fatal编程技术网

java中的转义逗号

java中的转义逗号,java,sql,Java,Sql,我有一个字符串,它被输入到查询中,如IN子句所示,它看起来像('ACT','INACT'),它是包内函数的参数之一, 看起来像这样 call package.function(1,2,3,('ACT','INACT'),4,5). 当调用包时,我得到错误类型的参数 它将括号内的值视为由字符串分隔的不同值。如果要将字符串转义到SQL查询中,请查看Commons Lang,更具体地说,它包括一个仅用于转义SQL字符串的静态方法。您应该使用CallableStatement,这样你就不必担心逃避你的

我有一个字符串,它被输入到查询中,如IN子句所示,它看起来像
('ACT','INACT')
,它是包内函数的参数之一, 看起来像这样

call package.function(1,2,3,('ACT','INACT'),4,5).
当调用包时,我得到错误类型的参数


它将括号内的值视为由字符串分隔的不同值。如果要将字符串转义到SQL查询中,请查看Commons Lang,更具体地说,它包括一个仅用于转义SQL字符串的静态方法。

您应该使用
CallableStatement
,这样你就不必担心逃避你的输入。它看起来是这样的:

CallableStatement proc = conn.prepareCall("{call package.function(?,?,?,?,?,?) }");
proc.setInt(1,1);
proc.setInt(2,2);
proc.setInt(3,3);
proc.setString(4,"('ACT','INACT')");
proc.setInt(5,4);
proc.setInt(6,5);
proc.execute();

请给我们看看有这个问题的代码<代码>('ACT','INACT')不是有效的Java语法(可能在字符串常量内除外),因为单引号表示字符常量(即,它们可能只包含一个字母)。在'package.function'中定义了哪些参数?请显示代码。看起来您没有使用CallableStatements来执行调用。您是在谈论存储过程吗?这在Java中没有意义——您将得到编译时错误。@Nishant,在Java中绑定参数是有意义的。基于OP提供的有限数据,我只能推断没有绑定,参数是硬编码的。