dbms_output语句中的单引号?

Thi*_*ATR 3 plsql oracle11g

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

 dbms_output.put_line('\''first_name||'\'');
Run Code Online (Sandbox Code Playgroud)

这里first_name是variable; 我需要在单引号内显示​​这个.

Daz*_*zaL 8

你可以通过加倍来逃避:

 dbms_output.put_line('''' || first_name || '''');
Run Code Online (Sandbox Code Playgroud)

或使用q-quote机制:

 dbms_output.put_line(q'[']'||first_name||q'[']');
Run Code Online (Sandbox Code Playgroud)

例如:

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.
Run Code Online (Sandbox Code Playgroud)