join - oracle多次插入给出重复索引错误
问题描述
我正在使用表格进行输入,并且正在使用 select 进行插入,但它给了我错误。inp_tab ==> 是输入表
类型:
create or replace TYPE UT_ACCOUNT_EXTENSION_INP_OBJ AS OBJECT
( account_no VARCHAR2(9 CHAR)
,account_name VARCHAR2(40 CHAR)
);
程序:
create or replace TYPE INP_TAB AS TABLE OF INP_OBJ;
WHILE (i <= inp_tab.count )
LOOP
INSERT INTO table1(account_id ,account_name)
SELECT tab2.ACCOUNT_ID ,inp_tab(i).account_name
FROM
TABLE (inp_tab )
JOIN table2 tab2
ON table2.account_nbr = inp_tab(i).account_no;
i := i +1;
END LOOP;
当我使用一个输入记录运行该过程时,插入工作正常,但是当我在 INP_TAB 中使用 2 个输入运行该过程时,它自身的第一个记录失败,并出现以下错误。
-1 索引中不允许重复插入
000210 ORA-00001: 违反唯一约束 (table1_PK)
PL/SQL 过程成功完成。
解决方案
推荐阅读
- ssl - 尝试通过移动数据访问网站时出现 ERR_SSL_PROTOCOL_ERROR
- python - 参数 1 必须是字符串,而不是元组
- opencv - opencv 可以在 cv::Mat 中绘制浮点坐标矩形吗?
- compiler-construction - 什么是语言前端?
- javascript - Javascript Electron Menu() 不是构造函数
- node.js - 为什么我无法在端口 3005 上进行控制台日志侦听?
- javascript - 在使用本机反应构建的移动应用程序中包含外部 javascript 文件
- arrays - 如何应用模数以使索引永远不会为 0?
- javascript - 当多行设置为true时,IOS反应本机onSelectionChange将光标移动到初始位置
- java - 二叉树的水平顺序旅行以确定对称性