首页 文章

错误INSERT INTO ...将行返回到表中

提问于
浏览
0

我试图将插入行返回到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;

1 回答

  • 0

    有一个拼写错误

    插入结果值p_tResultats(i)返回* BULK收集到p_tAjoutes;

    它不是表RESULATS而是“RESULTATS”

    而且我猜你不能使用"RETURNING * ",你必须在这里指定所有列名:PL/SQL How return all attributes in ROW

相关问题