Oracle ORA-01861:使用存储过程时,文字与格式字符串不匹配
我试图在存储过程中执行以下语句Oracle ORA-01861:使用存储过程时,文字与格式字符串不匹配,oracle,Oracle,我试图在存储过程中执行以下语句 execute immediate 'insert into tmp_vw(TMP_SRC, SNAP_DATE) select TMP_SRC,Max(SNAP_DATE) as SNAP_DATE from tmp_demand group by TMP_SRC' ORA-01861:文字与格式字符串不匹配 SNAP_DATE类型为DATE,值的格式为“2001-01-01”您必
execute immediate 'insert into tmp_vw(TMP_SRC, SNAP_DATE)
select TMP_SRC,Max(SNAP_DATE) as SNAP_DATE
from tmp_demand group by TMP_SRC'
ORA-01861:文字与格式字符串不匹配
SNAP_DATE类型为DATE,值的格式为“2001-01-01”您必须将TMP_DEMAND.SNAP_DATE作为varchar2 例如
您也需要将临时表更改为date以避免错误。tmp\u vw.SNAP\u date或tmp\u demand.SNAP\u date必须是varchar2?如果
SNAP\u date
类型为date
,则它没有“格式”。
SQL> create table tmp_vw(TMP_SRC varchar2(20), SNAP_DATE date);
Table created.
SQL> create table tmp_demand(TMP_SRC varchar2(20), SNAP_DATE varchar2(20));
Table created.
SQL> alter session set nls_date_format ='yyyy-mm-dd';
Session altered.
SQL> insert into tmp_demand select 'a', sysdate from dual;
1 row created.
SQL> alter session set nls_date_format ='dd/mm/yyyy';
Session altered.
SQL> insert into tmp_vw(TMP_SRC, SNAP_DATE) select TMP_SRC,Max(SNAP_DATE) as SNAP_DATE from tmp_demand group by TMP_SRC;
insert into tmp_vw(TMP_SRC, SNAP_DATE) select TMP_SRC,Max(SNAP_DATE) as SNAP_DATE from tmp_demand group by TMP_SRC
*
ERROR at line 1:
ORA-01861: literal does not match format string