dbms_output ステートメントに一重引用符を含める必要があります。私はこれを試しました:
dbms_output.put_line('\''first_name||'\'');
ここで first_name はvariable
; これを一重引用符で囲む必要があります。
あなたは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.