oracle - PL/SQL,如何转义字符串中的单引号?

标签 oracle plsql

在Oracle PL/SQL中,如何转义字符串中的单引号?我尝试了这个方法,不起作用。

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')]';

文字文档 can be found here

或者,您可以使用两个引号来表示单引号:

stmt := 'insert into MY_TBL (Col) values(''ER0002'')';

在我看来,Q 语法的文字引用机制更加灵活和可读。

关于oracle - PL/SQL,如何转义字符串中的单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315340/

相关文章:

java - JDBC - 从 JAVA 调用 PLSQL 会出现 Java.sql.SQLException : ORA-06550

oracle - 返回带有 PL/SQL 和变量表名的数据集

java - JDBC PL/SQL 上一行 (LAG) 仅返回当前值

java - 从 blob 反序列化 java 对象

oracle - PL/SQL 函数值的间隔精度

oracle - 在 JPA 连接中设置上下文 — 这安全吗?

sql - Oracle XE 11g 在 Ubuntu 上的 ORA-12505

oracle - 需要以动态方式使用 PL/SQL 将表数据输出到 CSV 的想法

sql - 在没有匹配的 JOINed 记录时指定默认值

sql - 分区后从每个组中获取特定值