SQLデータベースで特定の行を名前でクエリしようとしていますが、アンパサンドがあります。私はエスケープ文字を設定してアンパサンドをエスケープしようとしましたが、何らかの理由でこれが機能していないため、私の問題が正確に何であるかは不明です。SQL文字列でアンパサンド文字をエスケープする
Set escape '\'
select * from V1144engine.T_nodes where node_id in(
select node2_id from V1144engine.T_edges where node1_id in(
select node2_id from V1144engine.T_edges where node1_id in(
select node2_id from V1144engine.T_edges where node1_id =
(select node_id from V1144engine.T_nodes where node_name = 'Geometric Vectors \& Matrices')))
and edge_type_id = 1)
and node_type_id = 1
and node_id in (
select node2_id from V1144engine.T_edges where node1_id =
(select node_id from V1144engine.T_nodes where node_name = 'Algebra II')
and edge_type_id = 2);
これはthis questionに同様のソリューションを持っているが、問題は非常に異なって提起されています。彼らは同じ解決策を持つことになるかもしれませんが、それは質問が同じであることを意味しません。
エスケープ文字( '\')を引用符で囲む必要はありません – mcalex
'set define off'はそれを行う最も簡単な方法です。 – Annjawn
http://stackoverflow.com/questions/118190/how-do-i-ignore-ampersands-in-a-sql-script-running-from-sql-plusの重複 – LordScree