我正在尝试减去将“systimestamp”保存为日期和时间值的两列。我得到了
'ORA-01722: invalid number'
作为错误消息。如果有人可以提供帮助,将会有很大帮助。
我尝试用谷歌搜索这个错误,它说字符串可能不是有效的文字。它适用于其他记录,唯一的问题是当我尝试减去它时。
SELECT ETL_BATCH_ID,
ETL_BATCH_GROUP_NAME,
TO_CHAR(BATCH_START_TS,'DD-MON-YY')
|| ' '
||TO_CHAR(BATCH_START_TS,'HH24:MI:SS') "BATCH_START_TS",
TO_CHAR(DW_DM_END_TS ,'DD-MON-YY')
||' '
||TO_CHAR(DW_DM_END_TS , 'HH24:MI:SS') "DW_DM_END_TS" ,
(TO_CHAR(DW_DM_END_TS , 'HH24:MI:SS')) - (TO_CHAR(BATCH_START_TS,'HH24:MI:SS')) "COMPLETION_TIME"
FROM bi_etl.bi_etl_batch
WHERE ETL_BATCH_GROUP_NAME = 'CMD';
例如,
BATCH_START_TS || DW_DM_END_TS || COMPLETION_TIME
01-OCT-19 3:18:00 ||01-OCT-19 3:20:00 || 00:02:00
因此完成时间为 (DW_DM_END_TS) - (BATCH_START_TS) = COMPLETION_TIME 但它抛出了如上所示的特定错误
最佳答案
直接对这些时间戳值应用减法:
select DW_DM_END_TS - BATCH_START_TS as "COMPLETION_TIME"
from bi_etl_batch;
COMPLETION_TIME
-000000000 00:02:00.000000
两个字符串类型值之间不可能进行减法,并且没有任何意义。
关于sql - Oracle SQL Developer 显示以下代码的无效编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182244/