我有一个字符串作为 IN 子句输入到查询中,它看起来像这样 ('ACT','INACT')
,它是包内函数的参数之一。当从java调用该函数时,
看起来像这样
call package.function(1,2,3,('ACT','INACT'),4,5).
当调用包时,我收到错误,因为参数类型错误。
它将括号内的值视为由字符串分隔的不同值
最佳答案
您应该使用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();
关于java - java中转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4713280/