从另一个 table 插入到具有自动递增序列的 ORACLE table?
Inserting into an ORACLE table that has an auto increment sequence from another table?
我有一个 ORACLE 数据库,有两个 table,一个是旧数据的导入,另一个是“地址”
我已经使用以下代码将“地址”table设置为自动递增:
CREATE SEQUENCE AddressID
MINVALUE 1 START WITH 1
CACHE 10;
我必须从名为“IMPORT_EMPLOYEE”的 table 中插入相同命名列的所有值,但我无法做到这一点。这是我到目前为止尝试过的:
INSERT INTO ADDRESS (ADDRESS.NEXTVAL,StreetAddress, City, Province, PostalCode)
SELECT StreetAddress, City, Province, PostalCode
FROM IMPORT_EMPLOYEE;
这个 returns 以下错误,我怀疑这是因为 address.nextval:
命令行错误:1 列:13
错误报告 -
SQL 错误:ORA-00947:值不足
00947. 00000 - “没有足够的值”
*原因:
*行动:
如有任何帮助,我们将不胜感激!
你把顺序放错地方了;应该在 select
中,而 insert into
应该包含“目标”列(假设它的名称是 id
):
INSERT INTO address (
id,
streetaddress,
city,
province,
postalcode
)
SELECT
address.NEXTVAL,
streetaddress,
city,
province,
postalcode
FROM
import_employee
您遇到的错误 - 如果其他一切正常 - 意味着您将 4 个值插入 5 列,这是不匹配的。
我有一个 ORACLE 数据库,有两个 table,一个是旧数据的导入,另一个是“地址”
我已经使用以下代码将“地址”table设置为自动递增:
CREATE SEQUENCE AddressID
MINVALUE 1 START WITH 1
CACHE 10;
我必须从名为“IMPORT_EMPLOYEE”的 table 中插入相同命名列的所有值,但我无法做到这一点。这是我到目前为止尝试过的:
INSERT INTO ADDRESS (ADDRESS.NEXTVAL,StreetAddress, City, Province, PostalCode)
SELECT StreetAddress, City, Province, PostalCode
FROM IMPORT_EMPLOYEE;
这个 returns 以下错误,我怀疑这是因为 address.nextval:
命令行错误:1 列:13
错误报告 -
SQL 错误:ORA-00947:值不足
00947. 00000 - “没有足够的值”
*原因:
*行动:
如有任何帮助,我们将不胜感激!
你把顺序放错地方了;应该在 select
中,而 insert into
应该包含“目标”列(假设它的名称是 id
):
INSERT INTO address (
id,
streetaddress,
city,
province,
postalcode
)
SELECT
address.NEXTVAL,
streetaddress,
city,
province,
postalcode
FROM
import_employee
您遇到的错误 - 如果其他一切正常 - 意味着您将 4 个值插入 5 列,这是不匹配的。