Insertステートメントに特殊文字&
を挿入したい。私の挿入物は:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
このクエリを実行しようとすると、ポップアップが表示され、Oracle_14
の値を入力するよう求められます。
Oracle dbのinsertステートメントに&
などの特殊文字を入力するにはどうすればよいですか?
SQL * PlusまたはSQL Developerを使用している場合は、実行する必要があります
SQL> set define off;
sQLステートメントを実行する前。これで、置換変数のチェックが変わります。
このようなSETディレクティブは、クライアントツール(SQL * PlusまたはSQL Developer)の指示です。セッションスコープがあるため、接続するたびにディレクティブを発行する必要があります(DEFINEをOFFに設定するようにデフォルトを変更する場合は、クライアントマシンのglogin.sqlにディレクティブを配置できます)。データベース内の他のユーザーまたはセッションに影響を与えるリスクはありません。
'Java_22 '||'&'||' Oracle_14'
を試してください
ジャスティンの答えは行く方法ですが、参考までに、挿入したい文字のASCII値でchr()関数を使用することもできます。この例では、次のようになります。
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14');
ドットをたどると、単に&をエスケープできます。これを試して:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
「&」を含む値を挿入します。次のコードを使用します。
Set define off;
Begin
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
End ;
OracleまたはToad EditorsのF5キーを押します。
特殊文字セットについては、UNICODEチャートを確認する必要があります。キャラクターを選択したら、以下のsqlステートメントを使用できます。
SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;
-
d ō TTTT
また、このようにconcatを使用できます:D
Insert into Table Value(CONCAT('Java ',CONCAT('& ', 'Oracle'));
strAdd = strAdd.replace( "&"、 "'||'& '||'");
これを行うには3つの方法があります。
1)単にSET DEFINE OFFを実行します。そして、挿入stmtを実行します。
2)予約語を単一引用符で囲んで連結するだけです。例えば。 「Java_22」を選択|| '&' || ':' || dual-(:)の 'Oracle_14'はオプションです。
3)連結とともにCHR機能を使用する。例えば。 「Java_22」を選択|| chr(38)|| 'デュアルからOracle_14 '
この助けを願っています!!!
"Java"
のようにエスケープ文字を先頭または末尾に追加する場合は、次を使用します。
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'Java'||chr(34)||'');
別の方法を使用して、たとえば、特殊文字「Java_22&Oracle_14」を含む値をdbに挿入することもできます。次の形式を使用できます。
'Java_22' || '&' || ' Oracle_14 '
Oracleのドキュメントで提供されているエスケープシーケンスの処理が正しくないため、3つの異なるトークンと見なされますが、オプションはありません。