Sql PLS-00103:遇到符号“~&引用;当预期出现以下错误之一时

Sql PLS-00103:遇到符号“~&引用;当预期出现以下错误之一时,sql,oracle,plsql,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)';

我正在使用
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
:在预期以下情况之一时遇到了符号“~”。。错误。

不需要引号

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

不需要引用

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

您不能在
单引号
内使用
单引号

与双引号一起使用,如下所示:
regexp\u replace(SomeColumn,“~”,NULL)
您不能在
单引号内使用
单引号
, 与双引号一起使用,如下所示:
regexp\u replace(SomeColumn,“~”,NULL)
试试这个

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

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