パラメータ タイプ varchar2 を含むプロシージャを作成し、アプリケーションから渡す文字列は「'O'、'H'、'Y'」のようであり、クエリは以下のとおりです。
select * from table_name t where t.productname in (parameter)
クエリはデータを返しません。対処方法は?
私は 2 つまたは 3 つのクォーテーション マークを試してみます。
この「O、H、Y」のようなパラメータを設定してみてください
ここでいくつかの例を見ることができます
プロシージャをパラメーターとして渡そうとすると、何も表示されないか、エラーが発生するはずです。誰もが知っているように、値を返す関数のみを渡すことができます。さらに役立つように、コードとサンプルを追加する必要があります。() には正確に何を渡していますか?
-- Correct syntax to pass parameters in your case --
select * from table_name t where t.productname in ('O', 'H', 'Y')
/
SQL クエリで一重引用符を渡すには、一重引用符を 2 回使用します。単純!
あなたが持つことができます:
select * from table_name t where t.productname in ('''O''', '''H''', '''Y''')
これをテストするには、次を使用できます。
SELECT 'Schindler''s List' AS fname FROM dual;
単一引用符をクエリに簡単に渡すことができることがわかります。
ここでは、二重引用符は大した問題ではありません。次のように、SQL 文字列リテラル内で二重引用符を直接使用できます。
SELECT 'He said, "Give me my teddy bear!"' AS dilogue FROM dual;