0

パラメータ タイプ varchar2 を含むプロシージャを作成し、アプリケーションから渡す文字列は「'O'、'H'、'Y'」のようであり、クエリは以下のとおりです。

select * from table_name t where t.productname in (parameter)

クエリはデータを返しません。対処方法は?

私は 2 つまたは 3 つのクォーテーション マークを試してみます。

4

3 に答える 3

2

この「O、H、Y」のようなパラメータを設定してみてください

ここでいくつかの例を見ることができます

于 2013-03-15T12:51:29.643 に答える
0

プロシージャをパラメーターとして渡そうとすると、何も表示されないか、エラーが発生するはずです。誰もが知っているように、値を返す関数のみを渡すことができます。さらに役立つように、コードとサンプルを追加する必要があります。() には正確に何を渡していますか?

-- Correct syntax to pass parameters in your case --
select * from table_name t where t.productname in ('O', 'H', 'Y')
/
于 2013-03-15T13:33:36.110 に答える
0

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;
于 2013-03-15T16:36:09.320 に答える