PL / SQL,如何在string中单引号转义?
在Oracle PL / SQL中,如何在string中转义单引号? 我试过这种方式,这是行不通的。
declare stmt varchar2(2000); begin for i in 1021 .. 6020 loop stmt := 'insert into MY_TBL (Col) values(\'ER0002\')'; dbms_output.put_line(stmt); execute immediate stmt; commit; end loop; exception when others then rollback; dbms_output.put_line(sqlerrm); end; /
你可以使用文字引用:
stmt := q'[insert into MY_TBL (Col) values('ER0002')]';
文字文件可以在这里find 。
或者,您可以使用两个引号来表示单引号:
stmt := 'insert into MY_TBL (Col) values(''ER0002'')';
具有Q语法的文字引用机制更加灵活和可读,IMO。
这里有一个博客文章 ,应该帮助逃避string中的蜱。
以下是所述post中最简单的方法:
最简单和最常用的方法是在双方中使用带有两个单引号的单引号。
从双重select'testing单引号''';
以上陈述的输出将是:
testing单引号'
只需说明您需要额外的单引号字符来打印单引号字符。 这就是说,如果你把两个单引号字符Oracle将打印一个。 第一个>一个像转义字符。
这是在Oracle中打印单引号的最简单的方法。 但是当你不得不打印一组引号而不是一个引号时,它会变得复杂。 在这种情况下,以下方法正常工作。 但是这需要更多的打字工作。
只需在FOR之前放置以下语句:
set escape '\';