首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用转义单引号调用函数

使用转义单引号调用函数
EN

Stack Overflow用户
提问于 2018-07-19 15:41:40
回答 1查看 789关注 0票数 0

我很难将字符串传递给一个函数,在该函数中,字符串将在IN子句中使用。

该字符串如下所示:

代码语言:javascript
复制
OracleParameter p = new OracleParameter("'ABC','EEE','DDD','FFF'", val, OracleDbType.VarChar2, ParameterDirection.Input);

PL/SQL函数中的IN子句如下所示:

sqlString := 'WHERE SomeCd IN (' || in_Codes || ')'

因此,当函数执行时,您将得到这个子句的如下内容:

WHERE someCd IN ('ABC','EEE','DDD','FFF')

问题是,我不能在我的IDE中真正测试这一点,因为为了传递它,我必须使用转义序列来转义单引号。这将导致字符串如下所示:

  1. '''ABC'',''EEE'',''DDD'',''FFF''' 它被解析为''ABC'',''EEE'',''DDD'',''FFF''
  2. q'['ABC','EEE','DDD','FFF']' 它作为q'['ABC','EEE','DDD','FFF']'发送到函数。

这两种方法都不能正常工作,因为字符串的格式现在是错误的。

如何以正确的格式将此列表传递给函数?我要用varray还是别的什么吗?

编辑:

一般情况下,问题是:当我在转义的一对单引号''中转义单引号''''时,转义单引号''也将被传递给函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 16:02:12

试试OracleParameter p = new OracleParameter(@"'ABC','EEE','DDD','FFF'", val, OracleDbType.VarChar2, ParameterDirection.Input);

这应该是字面上解释字符串,而不改变字符串本身。

请注意,我添加了@符号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51426845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档