Xml 如何设置每个过程调用的nls\u时间戳\u格式

Xml 如何设置每个过程调用的nls\u时间戳\u格式,xml,oracle11g,Xml,Oracle11g,我有一个存储过程,它将插入到xmltype列中。该列引用具有datetime类型列的架构。日期的格式应为:YYYY-MM-DD“T”HH24:MI:SS 通过匿名块测试它,我可以发出一个ALTER会话来将时间格式更改为当前会话 alter session set nls_timestamp_format = 'YYYY-MM-DD"T"HH24:MI:SS'; insert into table1 (id, xmlcolumn) values (1, updatexml( '/root/

我有一个存储过程,它将插入到xmltype列中。该列引用具有datetime类型列的架构。日期的格式应为:YYYY-MM-DD“T”HH24:MI:SS

通过匿名块测试它,我可以发出一个ALTER会话来将时间格式更改为当前会话

alter session set nls_timestamp_format = 'YYYY-MM-DD"T"HH24:MI:SS';

insert into table1 (id, xmlcolumn) values (1, updatexml(
   '/root/order/id/text()', p_order_id,
   '/root/order/date/text()', to_timestamp(sysdate,'DD-MON-RRRRHH:MI:SS.FF')
));
将其移动到存储过程虽然Oracle阻止我使用ALTER会话,但我尝试了:

DBMS_SESSION.SET_NLS('nls_timestamp_format','YYYY-MM-DD"T"HH24:MI:SS');
但SQL开发人员表示该选项无效

我对Oracle(作为一名SQL DB开发人员)非常陌生,有没有关于如何设置时间格式的建议


提前感谢

数据库管理系统会话。设置NLS过程不会引发任何异常。但是,如果value参数表示一个
格式掩码
(在
ALTER SESSION命令
中是
双引号
),则需要将其括在
三引号中。否则,将引发以下Oracle错误:
ORA-00922:缺少或无效选项。
试试这个:

DBMS_SESSION.SET_NLS('nls_timestamp_format','''YYYY-MM-DD "T"HH24:MI:SS''');