create or replace procedure new_user as
begin
fnd_user_pkg.createuser('BOBBY','oracle123',TO_DATE('7-FEB-2017'),NULL,TO_DATE('20-02-17'),'80','78960','bobby@gmail.com');
end;
我使用以下命令调用上述过程:
exec new_user();
程序成功符合,但遇到执行错误时:
从命令行7开始出错 - BEGIN new_user();结束;错误 报告 - ORA-01847:每月的日期必须在1到最后一天之间 月ORA-06512:at" APPS.NEW_USER",第3行ORA-06512:第1行 01847. 00000 - "每月的日期必须介于1和1的最后一天之间"
*原因:
*操作:
有人可以帮助我吗?
答案 0 :(得分:1)
您的to_date
中有多种格式,但未对其进行定义。
create or replace procedure new_user as
begin
fnd_user_pkg.createuser('BOBBY',
'oracle123',
TO_DATE('7-FEB-2017', 'D-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN'), -- definition here, 'NLS_DATE_LANGUAGE=AMERICAN' can be omitted if your language is set to English
NULL,
TO_DATE('20-02-17','DD-MM-YY'), -- definition here
'80',
'78960',
'bobby@gmail.com');
end;
答案 1 :(得分:0)
此错误可能是因为formatting of the to_date() function
以下是一些参考资料:
to_date('29-Oct-09', 'DD-Mon-YY')
to_date('10/29/09', 'MM/DD/YY')
to_date('120109', 'MMDDYY')
to_date('29-Oct-09', 'DD-Mon-YY HH:MI:SS')
to_date('Oct/29/09', 'Mon/DD/YY HH:MI:SS')
to_date('October.29.2009', 'Month.DD.YYYY HH:MI:SS')
您也可以参考this link进一步参考。
希望这有帮助!