如何在甲骨文中预测和逃避单引号

时间:2014-12-09 07:01:18

标签: sql oracle

假设我的列值为aaa'gh,它会在oracle中抛出错误,说sql命令没有正确结束。

我的问题是,如果我不知道有多少'在我的价值中,我怎么能安全地逃脱它们。

2 个答案:

答案 0 :(得分:13)

最好的方法是使用quoting string literal technique。语法为q'[...]',其中" ["和"]"只要字符不在字符串中,它们就可以是以下任何一种。

  • <!/ LI>
  • []
  • {}
  • ()
  • &LT; &GT;

您不必担心字符串中的单引号。

  

假设我的列值为aaa&#39; gh

所以你可以简单地把SQL写成,

SELECT q'[aaa'gh]' FROM DUAL;

为开发人员节省了大量时间。我们(开发人员)在开发数据库中使用dbms_output来验证动态sql的那些日子已经一去不复返了,只是为了确保在进入生产之前就已经存在了。

答案 1 :(得分:7)

我遇到这个问题的简单方法总是只使用

replace(string, '''', '''''')

但是Lalit Kumar B解决方案似乎更为复杂