有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

到目前为止,在websphere IBM中java错误地强制转换了varchar

我正在调用一个PL/SQL函数,该函数返回一个varchar2表。签名如下:

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') );

在SQL Developer中,结果如下所示:

10/01/2015

但是,当我从部署在websphere 8.5.5和println(resulset.getString(1))中的Java web应用程序中使用确切的SQL调用该函数时,它是这样的:

2015年1月10日

我只是不想让应用服务器做任何铸造。是否有任何配置可避免该强制转换


共 (1) 个答案

  1. # 1 楼答案

    Oracle日期类型为stored in a special format。每个客户端决定如何显示它们;显示格式由客户端的NLS语言设置控制Find out more.

    DD-MON-YYYY是Oracle默认的日期显示格式。因此,应用服务器没有进行任何强制转换,它只是以默认的Oracle方式呈现日期

    如果不进行彻底的影响分析,您可能不应该更改Websphere中的NLS设置。其他人可能对默认格式很满意(除此之外,在全球环境中,它消除了歧义:1月10日不是10月1日)