2016-05-14 5 views
0

Я пытаюсь вернуть вставив строку в таблицу ROWTYPE в PL/SQL, но у меня есть ошибка: объявление типаОшибка INSERT INTO ... ВОЗВРАЩЕНИЕ строки в таблицу

ORA-00936: missing expression.

Таблицы в пакете головах :

TYPE t_retourResult IS TABLE OF RESULTATS%ROWTYPE; 

И ошибка при вставке в теле пакета:

PROCEDURE EncoderResultats(p_tResultats IN t_resultats, p_tAjoutes OUT t_retourResult, p_tErreurs OUT t_erreur) 
    IS 
     ExceptTResultats EXCEPTION; 
     i INTEGER; 
    BEGIN 
     IF(p_tResultats.COUNT = 0) THEN RAISE ExceptTResultats; END IF; 

     FORALL i IN INDICES OF p_tResultats SAVE EXCEPTIONS 
     INSERT INTO RESULATS VALUES p_tResultats(i) RETURNING * BULK COLLECT INTO p_tAjoutes; 

     COMMIT; 

    EXCEPTION 
     WHEN ExceptTResultats THEN RAISE_APPLICATION_ERROR(-20006,'Le tableau est vide, aucun resultat à ajouter'); 
     WHEN OTHERS THEN RAISE;  
    END EncoderResultats; 

ответ

0

есть ошибка опечатка в

ВСТАВКА В РЕЗУЛЬТАТЫ ЗНАЧЕНИЙ p_tResultats (i) ВЕРНУТЬСЯ * BULK СОБИРАТЬ В p_tAjoutes;

это не таблица RESULATS но «RESULTATS»

кроме того я думаю, вы не можете использовать «ВОЗВРАЩЕНИЕ *», вы должны указать все имена столбцов, как сообщается, также здесь: PL/SQL How return all attributes in ROW

Смежные вопросы