Sql Oracle插入查询返回错误01843。00000-“第;不是有效月份”;

Sql Oracle插入查询返回错误01843。00000-“第;不是有效月份”;,sql,oracle,Sql,Oracle,我正在尝试执行下面的查询 INSERT INTO X_VW_PRICEPRODUCT_IC SELECT * FROM ER_PRICEPRODUCT@link; 在X_VW_price product_IC中,我有两列相关的DATE数据类型。 在Eru Price Product中有两列,它们的值类似于01-01-1900和01-01-1900 当我执行这个sql时,我得到错误01843。00000-“不是有效月份” 我怎样才能解决这个问题 Oracle不会自动将dd-mm-yyy

我正在尝试执行下面的查询

INSERT INTO X_VW_PRICEPRODUCT_IC
     SELECT * FROM ER_PRICEPRODUCT@link;
X_VW_price product_IC
中,我有两列相关的
DATE
数据类型。 在Eru Price Product中有两列,它们的值类似于
01-01-1900
01-01-1900

当我执行这个sql时,我得到错误
01843。00000-“不是有效月份”


我怎样才能解决这个问题

Oracle不会自动将dd-mm-yyyy或mm-dd-yyyy转换为日期。您需要显式地使用
to\u date()
。尽管如此,在
insert
中包含列名还是个好主意。比如:

insert into X_VW_PRICEPRODUCT_IC(col1, . . . )
    SELECT col1, . . ., to_date(datecol, 'MM-DD-YYYY), . . .
    FROM ER_PRICEPRODUCT@link;

远程表的日期字符串的格式似乎为“dd-mm-yyyy”。因此,您必须更改会话字符串的日期解释:

alter session set nls_date_format = 'dd-mm-yyyy';

然后执行您的语句。

可能重复@alfasin,因为这不是选择特定的日期范围。我希望表中的所有内容都复制到其他表中。没关系。您的问题是尝试使用varchar并输入日期。试着运行
描述X_VW_PRICEPRODUCT_IC
,然后
描述ER_PRICEPRODUCT@link
并比较输出。