проблема в выполнении хранимой процедуры - PullRequest
0 голосов
/ 27 июня 2011

У меня есть хранимая процедура:

create or replace procedure AAAAAA(
ID in dbms_sql.number_table,
Name in dbms_sql.varchar2s
)
is
 tableName varchar2(30) := 'QWERT_';
Begin
Forall k in 1...ID.COUNT SAVE EXCEPTIONS
EXECUTE IMMEDIATE  'insert into ' || tableName || ID(k) ||   
' values (:1,:2)' using ID(k), NAME(k);
--EXCEPTION HANDLING CODE
End;

Но при компиляции кода выше я получаю

[Ошибка] PLS-00801 (9: 5): PLS-00801: внутренняя ошибка [* ASSERT в файле pdw4.c, строка 607;Неизвестное выражение Expr = 283 .;AAAAAA_ FFF _P__274784 [9, 5]].Таблица «tableName || ID (k)» уже была создана до запуска этой процедуры.

Любая идея, почему я получаю эту ошибку.Пожалуйста, помогите.

1 Ответ

5 голосов
/ 27 июня 2011

FORALL необходимо вставить в ту же таблицу.Это делает один PARSE и несколько BIND / EXECUTES.Таким образом, вы не можете использовать переменную массива [ID (k)] для формирования имени таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...