我正在调用一个返回varchar2表的PL/SQL函数。这是它的签名:
create or replace FUNCTION fn_get_estados
(Pcuenta IN varchar2,Pdia_corte integer)
RETURN t_estado_disp_table
AS以下是类型:
create or replace TYPE t_estado_Disp_type AS OBJECT
(date_inicial VARCHAR2(15),
date_final VARCHAR2(15));
create or replace TYPE t_estado_detalle_table AS TABLE OF t_estado_detalle_type;当我称其为函数时:
select date_inicial,date_final from table( fn_get_estados( '0000268') );在中,结果如下:
10/01/2015
但是,当我使用部署在websphere 8.5.5和println(resulset.getString(1))中的Java应用程序的确切SQL调用该函数时,如下所示:
10-2015年1月-2015年1月
我只是不想让应用服务器做任何投射。有什么配置来避免这种铸造吗?
发布于 2015-08-04 07:15:21
Oracle类型为以特殊格式存储。每个客户端决定如何显示它们;显示格式由客户端的NLS语言设置控制。了解更多信息。
DD-MON-YYYY是Oracle默认的日期显示格式。因此,应用服务器没有进行任何转换,它只是以默认的Oracle方式呈现日期。
如果不进行彻底的影响分析,您可能不应该更改Websphere中的NLS设置。其他人可能对默认格式很满意(除了其他任何东西外,在全球环境中,它消除了歧义:现在是1月10日,而不是10月1日)。
https://stackoverflow.com/questions/31795918
复制相似问题