3

dbms_output ステートメントに一重引用符を含める必要があります。私はこれを試しました:

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

ここで first_name はvariable; これを一重引用符で囲む必要があります。

4

2 に答える 2

10

あなたは2倍にすることで逃げるでしょう:

 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.
于 2013-02-04T15:40:10.143 に答える