我正在调用一个返回varchar2表的PL / SQL函数。这是它的签名:
CDC *pDC; //or use CClientDC, CPaintDC etc.
//do all drawings on pDC first
//pDC->TextOut(0,0,L"hello world")...
CRect rc;
GetClientRect(&rc);
CImage image;
image.Create(rc.Width(), rc.Height(), 32);
HDC imageHDC = image.GetDC();
::BitBlt(imageHDC, 0, 0, rc.Width(), rc.Height(), pDC->GetSafeHdc(), 0, 0, SRCCOPY);
image.Save(L"fileName.jpg", GUID_NULL);
image.ReleaseDC();
这是类型:
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;
SQL Developer中的结果如下:
2015年10月1日
但是当我使用部署在websphere 8.5.5中的Java Web应用程序中的确切SQL调用该函数时,select date_inicial,date_final from table( fn_get_estados( '0000268') );
就像这样:
10-JAN-2015
我只是不希望app服务器进行任何投射。是否有任何配置可以避免这种投射?
答案 0 :(得分:1)
Oracle日期类型为stored in a special format。每个客户决定如何显示它们;显示格式由客户端的NLS语言设置控制。 Find out more.
DD-MON-YYYY
是Oracle的日期默认显示格式。所以app服务器没有进行任何转换,它只是以默认的Oracle方式呈现日期。
如果不进行彻底的影响分析,您可能不应该更改Websphere中的NLS设置。其他人可能对默认格式非常满意(除了其他任何东西,在全球环境中它消除了歧义:它是1月10日而不是10月1日)。