Как выбрать идентификаторы в массиве идентификаторов? - PullRequest
0 голосов
/ 04 ноября 2011

У меня процедура

PROCEDURE Pro
(
  P_IDs VARCHAR2
);

Я хочу выбрать из таблицы, где идентификаторы совпадают с одним из идентификаторов, отправленных в P_IDs

SELECT * FROM Tbl WHERE ID IN ( P_IDs )

P_IDs выглядит как

'1,2,3,4,5'

Какие у меня варианты? Я думаю, что когда-то видел способ сделать это без использования пользовательских функций для разбиения строки, я хотел что-то чистое, простое в использовании.

1 Ответ

2 голосов
/ 04 ноября 2011

Я нашел это здесь:

Мне нужно преобразовать его в 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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...