从另一个 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 列,这是不匹配的。