我无法将字符串传递给函数,该函数将在
IN
条款。
字符串如下:
OracleParameter p = new OracleParameter("'ABC','EEE','DDD','FFF'", val, OracleDbType.VarChar2, ParameterDirection.Input);
以及
在
pl/sql函数中的子句如下所示:
sqlString := 'WHERE SomeCd IN (' || in_Codes || ')'
所以当函数执行时,您将得到这个子句:
WHERE someCd IN ('ABC','EEE','DDD','FFF')
问题是,我不能在我的IDE中真正测试它,因为为了在中传递它,我必须使用转义序列来转义单引号。这会导致字符串看起来如下:
-
'''ABC'',''EEE'',''DDD'',''FFF'''
被解析为
''ABC'',''EEE'',''DDD'',''FFF''
-
q'['ABC','EEE','DDD','FFF']'
作为
Q'['abc'、'eee'、'ddd'、'fff']
到函数。
由于字符串的格式现在错误,这两种方法都不能正常工作。
如何以正确的格式将此列表传递给函数?我要用varray还是什么?
编辑:
一般来说,问题是:当我从一个单引号中退出时
''
在一对转义单引号中
''''
,转义单引号
’
也正在传递给函数。