が、それは動作しません:PL/SQL、文字列/関数に一重引用符を書く方法は?私はこの方法を試してみましたOracleのPL/SQLで
....
sql_3 := sql_3 || q'[ upper(name_p) like Upper('%input_name%')]';
はどのようにリテラル引用符を使用する必要がありますしますか?または一重引用符を表す二重引用符?
が、それは動作しません:PL/SQL、文字列/関数に一重引用符を書く方法は?私はこの方法を試してみましたOracleのPL/SQLで
....
sql_3 := sql_3 || q'[ upper(name_p) like Upper('%input_name%')]';
はどのようにリテラル引用符を使用する必要がありますしますか?または一重引用符を表す二重引用符?
'
をエスケープし、文字列の2番目の部分の前にqを削除する必要があります。私のマシンで
declare
varr varchar2(100);
begin
varr := 'aaa';
varr := varr || q'[ upper(name_p) like Upper('%input_name%')]';
dbms_output.put_line(varr);
end;
/
作品:あなたは少し奇妙だが、Oracle
sql_3 := sql_3 || ' upper(name_p) like Upper(''%input_name%'')';
でコマンドを実行しようとしている場合は、SQLコマンド内のスクエアブラケットも、問題を行います。
質問の構文は有効です。「q」と角括弧は[代替の引用機構]からです(https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00218 )を文字列リテラルに使用します。あなたが持っているものはもちろん大丈夫です...しかし、表示された内容を変更する必要はありません。 –
その文が私のために働いていないという理由で、その理由でq '[...]を使用しようとしました。 – rockerchain
@AlexPoole私の誤り構文を知らなかった。しかし実際問題のものは正しいと思われ、うまくいくはずです。 – Kacper
2つの単一引用符の間に一重引用符を追加しようとしています このように '%'入力名% '' '' – Sawalhah
それは動作します - [代替引用構文は問題ありません](https://docs.oracle.com) /cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00218)。なぜそれはないと思いますか?エラーが発生していますか?もしそうなら、それはその行からのものですか? –
正確なエラーメッセージは何ですか?あなたの考えに起因することはほとんどありません。あなたが使っているフロントエンドとバージョンは何ですか? (SQL DeveloperやToadのようなもの... - どのような製品とバージョン?)古いバージョンは別の見積り演算子を理解できないかもしれません。 – mathguy