literal与格式字符串oracle 11g不匹配

时间:2016-10-28 03:17:28

标签: string oracle oracle11g

exec altacliente('tor','156','mat','tor','409911',908,'295',(TO_DATE('2003/05/03','DD-MON-YYYY')),'Itau','42484130','argentina','Lomas de zamora','azara',(TO_DATE('2016/10/27','DD-MON-YYYY')));

步骤:

create or replace PROCEDURE           "ALTACLIENTE" (nusuario in varchar2, nclave in varchar2, nnombre in varchar2, napellido in varchar2,ntarjeta in varchar2,nncalle in number,

varchar2中的codseguridad,日期中的fechavenc,varchar2中的empresatarj,varchar2中的ntelefono,varchar2中的pais,varchar2中的localidad,varchar2中的calle,日期中的fechahoy);

Informe de error - ORA-01861:文字与格式字符串不匹配 ORA-06512:第1行 01861. 00000 - "文字与格式字符串不匹配" *原因:输入中的文字必须与文字中的文字长度相同            格式字符串(前导空格除外)。如果            " FX"修改器已经切换,文字必须完全匹配,            没有额外的空白。 *操作:更正格式字符串以匹配文字。

2 个答案:

答案 0 :(得分:2)

这是日期格式模型中的MON。这适用于JAN,FEB,MAR等,或NLS设置中显示的语言。

对于数字月份(03,11),请使用MM而不是MON。

答案 1 :(得分:1)

显然是格式

TO_DATE('2003/05/03','DD-MON-YYYY')

不匹配。

正如mathguy所述,MON表示"月份的缩写名称",而不是月份编号。

除此之外,格式应该是以下之一(因为我不知道你的意思是" 5月3日和#34;或者" 3月5日和#34;)

TO_DATE('2003/05/03','YYYY/MM/DD')
TO_DATE('2003/05/03','YYYY/DD/MM')
TO_DATE('03-05-2003','DD-MM-YYYY')
TO_DATE('05-03-2003','DD-MM-YYYY')
TO_DATE('03-MAY-2003','DD-MON-YYYY')
TO_DATE('05-APR-2003','DD-MON-YYYY')