У меня есть проблема с форматом даты, когда преобразование из объекта в XML, потому что не ISO8601PL/SQL тип Преобразование объекта в XML Дата не ISO8601
Пример:
CREATE OR REPLACE TYPE APPS.MYOBJECT IS OBJECT (
MYDATE_1 DATE,
MYDATE_2 DATE);
DECLARE
v_myobject MYOBJECT;
v_xml XMLTYPE;
BEGIN
v_myobject:=new MYOBJECT(SYSDATE,SYSDATE);
v_xml:=XMLTYPE(v_myobject);
DBMS_OUTPUT.put_line('XML='||v_xml.getstringval);
END;
выход этого:
XML=<MYOBJECT><MYDATE_1>19-MAR-15</MYDATE_1><MYDATE_2>19-MAR-15</MYDATE_2></MYOBJECT>
и я хочу Дата в формате ISO8601, как это:
XML=<MYOBJECT><MYDATE_1>2015-02-19T15:16:00Z</MYDATE_1><MYDATE_2>2015-02-19T15:16:00Z</MYDATE_2></MYOBJECT>
Есть ли способ указать формат преобразования типа данных DATE ???
Благодаря
Я не знаком с объектами в PL/SQL, но не будет 'TO_CHAR (sysdate, 'format is here here)' 'работа тоже? –
@ Mr.Llama - тип данных поля объекта - это дата, хотя, по крайней мере, в этом примере. Вместо этого использование строкового поля может работать, но зависит от того, для чего используется тип объекта. И не уверен, что вы можете изменить поведение объекта по умолчанию «на строку»; Я не вижу, как, но я не использую объекты, поэтому я могу что-то упустить. Вы можете построить XMLType из элементов на основе полей объекта вручную, я полагаю, но это тоже большая работа. –
С помощью EXECUTE IMMEDIATE 'alter session set nls_date_format =' 'YYYY-MM-DD "T" HH24: MI: SS "Z"' ''; работает нормально – Kaltresian