0
我有一個查詢,看起來像這樣:蟾蜍爲Oracle綁定變量與IN子句
select * from foo where id in (:ids)
其中ID列是一個數字。
當蟾蜍版本11.0.0.116運行此,我希望提供ID的列表中,這樣生成的查詢是:
select * from foo where id in (1,2,3)
下頭腦簡單的方法給出了一個錯誤,1,2,3不是有效的浮點數。是否有一個類型/值的組合,可以讓我運行所需的查詢?
CLARIFICATION:查詢如圖所示,它是如何出現在我的代碼中的,我將它粘貼到TOAD中,用於測試具有各種值的查詢結果。到目前爲止,我只是使用逗號分隔的列表在TOAD中對綁定變量進行了文本替換,並且此工作正常,但對於嘗試不同的值列表有點麻煩。另外,我對這種形式的幾個查詢以這種方式進行測試,所以我正在尋找一種不太人性化的方式來在TOAD中輸入值列表而不修改查詢。如果這是不可能的,我會繼續採用行人方式。
[sqlplus - 在「IN」子句中使用綁定變量)的可能重複(http://stackoverflow.com/questions/4973809/sqlplus-using-a-bind-variable-in-in-clause) – OldProgrammer
I看不出這是如何與這個問題重複的。你是否說過Gerrat的回答是:「你不能在一個綁定變量中使用逗號分隔的值」適用於上面的TOAD對話框,就像它適用於那裏顯示的PL/SQL塊一樣? – pierus
這是正確的。它與TOAD無關。您必須使用其他方法將字符串「分解」爲單個數據項(如重複答案中所示),或者在查詢中使用單獨的變量,例如「in(:v1,:v2,:v3 ...) ; – OldProgrammer