在我的应用程序中,我有一个页面,用户可以在该页面上通过日期选择器选择日期。该日期应以varchar2(50)的形式存储在名为“ TASK_END_DATE”的列中。
因为在此页面上,已经有一个过程可以在我的表中存储一些其他输入的信息,所以日期选择器必须来自源“ Database_Column”。
但是现在我的问题是,我在整理页面时会遇到此错误,而且我完全不知道如何解决它。
ORA-01722:无效的数字
联系您的应用程序管理员。有关此事件的详细信息,可通过调试ID“ 14280”获得。 技术信息(仅对开发人员可见)
is_internal_error: false
ora_sqlcode: -1722
ora_sqlerrm: ORA-01722: invalid number
component.type: APEX_APPLICATION_PAGE_PROCESS
component.id: 30555528155357856
component.name: Fetch Row from SEEXML_TASKS
error_backtrace:
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SQL", line 1707
ORA-06512: at "APEX_180100.WWV_FLOW_DYNAMIC_EXEC", line 2360
ORA-06512: at "APEX_180100.WWV_FLOW_DYNAMIC_EXEC", line 1406
ORA-06512: at "APEX_180100.WWV_FLOW_DML", line 827
ORA-06512: at "APEX_180100.WWV_FLOW_PROCESS_NATIVE", line 556
ORA-06512: at "APEX_180100.WWV_FLOW_PROCESS_NATIVE", line 1157
ORA-06512: at "APEX_180100.WWV_FLOW_PLUGIN", line 2451
ORA-06512: at "APEX_180100.WWV_FLOW_PROCESS", line 201
error_statement:
begin begin select "TASK_LATEST_DELIVERY","TASK_STATUS_FLAG","LATEST_MANIPULATOR",to_char("TASK_END_DATE", :p$_format_mask1),"TASK_NAME","TASK_PARTNER","TASK_ID","TASK_STATUS","TASK_CREATOR","TASK_MASTERID","INITIAL_ORDER_NUMBER","INITIAL_REQUESTER","TASK_DEV_COMMENT","TASK_PROJECT_ENTRY" into wwv_flow.g_column_values(1),wwv_flow.g_column_values(2),wwv_flow.g_column_values(3),wwv_flow.g_column_values(4),wwv_flow.g_column_values(5),wwv_flow.g_column_values(6),wwv_flow.g_column_values(7),wwv_flow.g_column_values(8),wwv_flow.g_column_values(9),wwv_flow.g_column_values(10),wwv_flow.g_column_values(11),wwv_flow.g_column_values(12),wwv_flow.g_column_values(13),wwv_flow.g_column_values(14) from "SEEXML_TASKS" where "TASK_ID" = :p_rowid; end;
end;
如果我不选择“数据库列”作为源,它会很好地工作,但不会更新表中的新值。
因此,也许有人建议如何在流程中使用页面项而不将其源设置为“数据库列”?
我将不胜感激任何可以解决我问题的建议!
干杯!
答案 0 :(得分:0)
如果TASK_END_DATE
是VARCHAR2,则表达式to_char("TASK_END_DATE", :p$_format_mask11)
的结果为“ ORA-01722无效数字”。
to_char
期望date
或number
。由于您提供了varchar2
,因此必须首先将字符串隐式转换为数字,并且ORA-01722失败。
建议使用DATE
而不是VARCHAR2
类型创建需要存储日期值的表列。然后,您可以使用to_char
将其转换为字符串格式,以APEX格式使用。