在我的oracle函数中,我有一个TIMESTAMP类型的变量。我提取一个xml值并将其转换为时间戳,但会发生此错误。我正在提供代码和示例输入 首先,我将变量声明如下:
input_ebasp_created_on TIMESTAMP;
然后我提取并将值放入其中:
IF xmlData.existsnode('/employees/employee/ebasp_created_on/text()')>0 THEN
input_ebasp_created_on:=TO_TIMESTAMP(xmlData.extract('/employees/employee/ebasp_created_on/text()').getstringval(),'DD-MM-YYYY HH:MM:SS AM');
END IF;
如果我运行此代码,则会发生此错误:
ErrorORA-01810: format code appears twice
示例输入为:7-2-2016 11:52:39 AM
答案 0 :(得分:4)
您正在使用MM
两次。第二次出现MM
及时部分是错误的,就像你使用MI
的分钟一样。
将您的代码更改为
IF xmlData.existsnode('/employees/employee/ebasp_created_on/text()')>0 THEN
input_ebasp_created_on:=TO_TIMESTAMP(xmlData.extract('/employees/employee/ebasp_created_on/text()').getstringval(),'DD-MM-YYYY HH:MI:SS AM');
END IF;