获取纳秒级时间即9位精度时间获取问题?

【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】v4.2
【问题描述】 SYSTIMESTAMP、CURRENT_TIMESTAMP(9) 是否只支持微秒级精度6位?后3位补零了,但发现数据库是可以展示9位纳秒级数据的,请问怎么获取数据库纳秒级时间呢?

SELECT
TO_TIMESTAMP(‘2003-10-24 10:48:45.656123456’,‘YYYY-MM-DD HH24:MI:SS:FF9’) TO_TS9,
TO_CHAR(TO_TIMESTAMP(‘2003-10-24 10:48:45.656123456’,‘YYYY-MM-DD HH24:MI:SSXFF’),‘YYYY-MM-DD HH24:MI:SS:FF9’) TO_CS9,
TO_CHAR(SYSTIMESTAMP, ‘YYYY-MM-DD HH24:MI:SS.FF9’) AS TO_CS92,
CURRENT_TIMESTAMP(9) TIMESTAMP9
FROM DUAL;

*************************** 1. row ***************************
TO_TS9: 2003-10-24 10:48:45.656123456
TO_CS9: 2003-10-24 10:48:45:656123456
TO_CS92: 2025-03-14 10:24:38.757049000
TIMESTAMP9: 14-MAR-25 10.24.38.757054000 AM +08:00

曲线解决方法是获取SCN,通过转换可以实现。OBv4.0版本中SCN比之前版本多了3位长度,可以实现纳秒级时间,之前版本的SCN是微秒级的。这是我暂时找到的方法。请指导。

image
这边测试了下社区版目前的时间精度最高为微秒级别,无法直接获取纳秒级时间。如果您需要更高精度的时间值,可能需要结合外部工具或编程语言(如 Python、Java)来实现。

实测3.x企业版,最大精度微秒级