请告知Oracle11.1及以后版本的DatabaseManager限制事项。

 
【现象】
通过脚本开发模式API“DatabaseManager”来获取DB的DATE类型字段时,根据Oracle版本(包括JDBC驱动的版本)会返回不同的JavaScript类型。
【原因】
从Oracle Database 11g 第1版 (11.1)开始,默认就将“oracle.sql.DATE”映射到“java.sql.Timestamp”。
(另外,在从Oracle Database 9.0.1 到 11.0版本中,将“oracle.sql.DATE”映射到“java.sql.Date”)
因此,通过脚本开发模式API“DatabaseManager”来获取DB的DATE类型字段时,将根据Oracle版本(包括JDBC驱动的版本)会返回不同的JavaScript类型。
具体来说,在使用从Oracle Database 9.0.1 到 11.0版本的情况下,将返回JavaScript的Date类型,在使用Oracle Database 11.1及以后版本的情况下 ,将返回JavaScript的String类型。
【解决方法】
请将Java的系统属性“oracle.jdbc.mapDateToTimestamp”设置为 false 。
具体来说,请在resin安装目录/conf/resin.properties的“jvm_args”中追加如下内容
像如下所示编辑ApplicationRuntime的conf/imart.xml“intramart/platform/java/server/command/option”。

      -Doracle.jdbc.mapDateToTimestamp=false</option>

有关Java的系统属性“oracle.jdbc.mapDateToTimestamp”的详细信息,请参阅Oracle文档。
Oracle Database JDBC开发人员指南和参考 11g第1版(11.1)
 - [A JDBC参考信息] - [将Oracle Object类型映射到SQL DATE数据类型]
https://docs.oracle.com/en/database/oracle/oracle-database/21/jjdbc/JDBC-reference-information.html#GUID-DFF83C4A-D0F8-420C-BA66-8681B939B787(英语)
https://docs.oracle.com/cd/F19136_01/jjdbc/JDBC-reference-information.html#GUID-271C19F0-459D-4DA8-8C1D-F04AA5B8CD08__GUID-83B0777E-468F-4FDD-B55C-C5A36D962C84(日语)

-- 适用对象 ----------------------------------------------------------------
iAP/Accel Platform/所有更新版本
--------------------------------------------------------------------------------

FAQID:586
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持