Я столкнулся со следующей проблемой, я передаю массив строк в Oracle SQL, и я хотел бы получить все данные, где его идентификатор находится в списке ...
вот что я пробовал ...
OPEN O_default_values FOR
SELECT ID AS "Header",
VALUE AS "DisplayValue",
VALUE_DESC AS "DisplayText"
FROM TBL_VALUES
WHERE ID IN I_id;
I_id - это массив, описываемый следующим образом: TYPE gl_id IS TABLE OF VARCHAR2 (15) INDEX BY PLS_INTEGER;
Я получаю сообщение об ошибке "выражение имеет неправильный тип".
Массив I_id может иногда достигать 600 записей.
У меня вопрос, есть ли способ сделать то, что я только что описал, или мне нужно создать какой-то курсор и перебрать массив?
Что было опробовано - динамически создать строку SQL, а затем сопоставить значения до конца строки SQL и затем выполнить ее. Это будет работать для небольшого объема данных, а размер строки является статическим, что приведет к некоторым другим ошибкам (например, к индексу вне диапазона).