2011-11-03 100 views
0

我有一個過程如何選擇ID數組中的ID?

PROCEDURE Pro 
(
    P_IDs VARCHAR2 
); 

我想從那裏的ID匹配P_IDs發送

SELECT * FROM Tbl WHERE ID IN (P_IDs) 

P_IDs ID的一個表中選擇看起來像

'1,2,3,4,5' 

我有哪些選擇?我想我曾經看到過一種不使用自定義函數來分割字符串的方法,我想要一些易於使用的東西。

+0

可能重複[參數]中的[Oracle「IN子句」)(http://stackoverflow.com/questions/6629433/oracle-in-clause-from-parameter) – DCookie

回答

2

我在這裏找到:

我需要將其轉換爲一個使用XMLTable:

SELECT TO_NUMBER(xt.column_value) FROM XMLTABLE('1,2,3,4') xt 

用法示例:

SELECT * FROM Questions q 
WHERE q.ID IN (SELECT TO_NUMBER(xt.column_value) FROM XMLTABLE('1,2,3,4') xt)