【问题标题】:Single quote in dbms_output statement?dbms_output 语句中的单引号?
【发布时间】:2013-02-04 15:34:16
【问题描述】:

我需要在 dbms_output 语句中包含单引号。我试过这个:

 dbms_output.put_line('\''first_name||'\'');

这里的名字是variable;我需要在单引号内显示​​它。

【问题讨论】:

标签: plsql oracle11g


【解决方案1】:

你可以通过加倍逃脱:

 dbms_output.put_line('''' || first_name || '''');

或者使用q-quote机制:

 dbms_output.put_line(q'[']'||first_name||q'[']');

例如:

SQL> var b1 varchar2(30)
SQL> exec :b1 := 'this is a test';

PL/SQL procedure successfully completed.

SQL> exec  dbms_output.put_line(q'[']'||:b1||q'[']');
'this is a test'

PL/SQL procedure successfully completed.

SQL> exec  dbms_output.put_line(''''||:b1||'''');
'this is a test'

PL/SQL procedure successfully completed.

SQL> exec  dbms_output.put_line(chr(39)||:b1||chr(39));
'this is a test'

PL/SQL procedure successfully completed.

【讨论】:

  • 领先我 2 秒 :)
  • 伙计,我使用第一个得到了输出,但我似乎也很乏味非结构化!剂量第二个有效!?
  • @ThiyaguATR q-quotes 对于像这样的非常短的字符串可能有点冗长,但值得熟悉它们以用于较长的文本,例如动态 SQL 语句。
【解决方案2】:

请注意,这仅适用于 PL/SQL,并且必须处于活动状态。

begin
DBMS_OUTPUT.PUT_LINE('DELETE FROM MYTABLE WHERE MYFIELD <> ''A'';');
end;
/

假设你想匹配一个CHAR'A'。

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2015-06-16
    • 1970-01-01
    • 2013-03-21
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多