2011-11-03 54 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)