используя последовательность в динамическом SQL - PullRequest
1 голос
/ 14 июля 2011

У меня есть динамический sql:

forall k in 1..Job_ID.COUNT Save exceptions
EXECUTE IMMEDIATE 'insert into XYZ values(:1,:2,:3)' using sequence_one.NextVal,job_id(k),Name(k);
 ///Exception handling.

При выполнении запроса abouve вставляется только одна строка. И выдается следующая ошибка:

ORA-24381: error(s) in array DML.

Любая идея, почему выше вещьпроисходит?

1 Ответ

4 голосов
/ 14 июля 2011

Вы действительно хотите, чтобы каждая вставленная строка имела одинаковое значение последовательности в первом столбце? Если нет, вы должны сделать это:

forall k in 1..Job_ID.COUNT Save exceptions
  EXECUTE IMMEDIATE 'insert into XYZ values(sequence_one.NextVal,:2,:3)'
    using job_id(k),Name(k);

Или даже лучше (если у вас нет веских причин для использования динамического SQL:

forall k in 1..Job_ID.COUNT Save exceptions
  insert into XYZ values(sequence_one.NextVal, job_id(k), Name(k));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...