【问题标题】:Changing NLS_DATE_Format in Oracle Procedure在 Oracle 过程中更改 NLS_DATE_Format
【发布时间】:2019-01-08 14:24:37
【问题描述】:

是否可以在 Oracle 的函数中更改 NLS_DATE_Format

我有这样的功能

   create or replace Procedure GETFLOWSHEETRESULT 
    (
....
    ) AS 

    BEGIN
    alter session set nls_date_format = 'DD-MM-YYYY HH24:MI:SS';
    Select AVNR,Wert From E_MW_01MIN_MIT Where  DBTM='17-06-2018 16:20:00' and AVNR In (2085,2075,2089,2071);
    alter session set nls_date_format = 'DD-MON-RR';
    END GETFLOWSHEETRESULT;

但它给了我错误:

错误(8,4):PLS-00103:在预期以下情况之一时遇到符号“ALTER”:begin case declare exit for goto if loop mod null pragma raise return select update while with

我想在选择命令之前更改nls_Date_Format。因为它是每个会话,我该如何更改它?

【问题讨论】:

    标签: oracle plsql oracle11g


    【解决方案1】:

    使用 to_date 函数将日期字符串转换为日期值是最常见的。

    Select AVNR,Wert 
    From E_MW_01MIN_MIT 
    Where  DBTM=to_date('17-06-2018 16:20:00','DD-MM-YYYY HH24:MI:SS') 
    and AVNR In (2085,2075,2089,2071);
    

    如果您仍想更改 NLS_DATE_FORMAT,请尝试:

    execute immediate 'alter session.... ';
    

    【讨论】:

    • 你也可以使用DBMS_SESSION.SET_NLS('nls_date_format', '"DD-MM-YYYY HH24:MI:SS"');
    猜你喜欢
    • 2015-01-23
    • 2021-10-25
    • 2014-05-16
    • 2019-12-16
    • 2010-10-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多