我在oracle表中有一些JSON:
{"orders":[{"timestamp": "2016-08-10T06:15:00.4"}]}并使用JSON_TABLE选择/创建视图:
SELECT jt.*
FROM table1
JSON_TABLE (table1.json_data, '$.orders[*]' ERROR ON ERROR
COLUMNS ( StartTime TIMESTAMP PATH '$.timestamp')) AS jt;但是,无论我将日期/时间放在JSON中的格式是什么,我总是得到:
ORA-01830:在转换整个输入字符串之前结束日期格式图片
是否有一种方式来格式化json,或者我缺少的东西?如果我传入的日期像"2016-08-10",那么它将成功地创建一个日期列。
发布于 2020-10-05 14:26:31
在我的Oracle 19.6.0.0.0数据库上运行查询时,解析示例时没有任何问题(参见下面)。如果您使用的是旧版本的Oracle,则可能有助于应用最新的修补程序集。您还可能必须将其解析为字符串,然后根据接收日期的格式使用TO_DATE。
SQL> SELECT jt.*
2 FROM (SELECT '{"orders":[{"timestamp": "2016-08-10T06:15:00.4"}]}' AS json_data FROM DUAL) table1,
3 JSON_TABLE (table1.json_data,
4 '$.orders[*]'
5 ERROR ON ERROR
6 COLUMNS (StartTime TIMESTAMP PATH '$.timestamp')) AS jt;
STARTTIME
__________________________________
10-AUG-16 06.15.00.400000000 AMhttps://stackoverflow.com/questions/64210446
复制相似问题