我尝试在Oracle Application Express中使用ALTER SESSION SET nls_date_format语句更改nsl参数,但参数保持不变。
但是我可以在Oracle SQL Developer中进行更改。
我想知道为什么。
我发现此线程Number and date format : altering NLS_SESSION_PARAMETER does not work?中,Olafur Tryggvason在其中注释了有关“应用程序设置”的内容,这些内容会覆盖设置,但我找不到该配置。应该在“ Application Builder”中,但不是。
IN APEX
运行
select * from nls_session_parameters;
结果
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT mm/dd/yyyy
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
运行
ALTER SESSION SET nls_date_format ="dd/mm/yyyy";
结果
Statement processed.
0.00 seconds
运行
select * from nls_session_parameters;
结果
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT mm/dd/yyyy
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
IN SQL开发者
运行
select * from nls_session_parameters;
结果
PARAMETER VALUE
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPANISH
NLS_CURRENCY €
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT mm/dd/yyyy
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24.MI.SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY €
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
运行
ALTER SESSION SET nls_date_format ="dd/mm/yyyy";
结果
1 fila insertadas.
Session alterado.
运行
select * from nls_session_parameters;
结果
PARAMETER VALUE
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPANISH
NLS_CURRENCY €
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT dd/mm/yyyy
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24.MI.SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY €
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
答案 0 :(得分:1)
这是方法(如果我正确理解了问题):
将类似的内容放入“初始化PL / SQL代码”中:
begin
execute immediate q'[alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss']';
end;
应该这样做。
初始化代码也可以包含其他设置,例如NLS_NUMERIC_CHARACTERS
:
execute immediate q'[alter session set nls_numeric_characters = ', ']';
如果有必要,请考虑还原这些更改-请参阅同一“安全性”页面上“初始化代码”下方的“ Cleanup PL / SQL代码”部分。
答案 1 :(得分:1)