我有一個現有的過程,它以varchar2的形式接受輸入。 這個輸入字段實際上是一組由逗號分隔的數字。 '1,2,3' 或 '2,3' 等使用數字的字符串(Varchar2)作爲數字
現在過程內,希望在IN子句中使用這些數值爲在:
PROCEDURE SAVE_SETTING (p_category_list IN VARCHAR2)
IS
BEGIN
UPDATE my_table
SET status = 'ACTIVE'
WHERE category_id IN (p_category_list);
END;
現在MY_TABLE的CATEGORY_ID列是Number數據類型。 所以我要p_category_list轉換成一組數字,使有效的查詢:
UPDATE my_table
SET status = 'ACTIVE'
WHERE category_id IN (1,2,3);
而不是
UPDATE my_table
SET status = 'ACTIVE'
WHERE category_id IN ('1,2,3');
我DONOT要使用動態SQL(執行即時)
任何幫助實現這一目標?
您p_category_list可以提供輸入值本身作爲「 1' , '2', '3'? –
我無法以任何方式更改輸入。 – Arnab