PLS-00103:遇到符号"〜"当期待以下错误之一时

时间:2017-12-29 07:36:59

标签: sql oracle plsql

我正在使用REF CURSOR来获取数据并对其进行处理。

TYPE ty_ref_cur IS REF CURSOR RETURN MyTable%ROWTYPE;
l_cursor ty_ref_cur;

IF SomeCondition = 'Y' THEN
 OPEN l_cursor for 'SELECT column1, column2
  FROM SomeTable
  WHERE column1 = regexp_replace(SomeColumn, '~', NULL)';

当编译上面的代码时,我得到PLS-00103:遇到符号"〜"当期待下列之一..错误。

3 个答案:

答案 0 :(得分:2)

不需要引号

 OPEN l_cursor for SELECT column1, column2
  FROM SomeTable
  WHERE column1 = regexp_replace(SomeColumn, '~', NULL);

答案 1 :(得分:1)

您无法在single quotations内使用single quotations, 与double quotations一起使用,如下所示:regexp_replace(SomeColumn, ''~'', NULL)

答案 2 :(得分:0)

试试这个,

OPEN l_cursor for 'SELECT column1, column2
  FROM SomeTable
  WHERE column1 = regexp_replace(SomeColumn, ''~'', NULL)';