我试图将插入行返回到PL / SQL中的ROWTYPE表中但我有错误:
ORA-00936:缺少表达。
包头中的表类型声明:
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 :(得分:0)
中存在拼写错误
插入结果值p_tResultats(i)返回*大量收集到p_tAjoutes;
这不是表RESULATS而是“RESULTATS”
此外我猜你不能使用“RETURNING *”,你必须指定所有列名,如下所示: PL/SQL How return all attributes in ROW