Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX_JSON не понимает nls сессии? / 5 сообщений из 5, страница 1 из 1
22.07.2020, 12:29
    #39982644
APEX_JSON не понимает nls сессии?
Братцы, караул!

APEX_JSON не хочет понимать nls! Сами глядите. Кто что скажет, может?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare
    l_result clob;
    l_cursor SYS_REFCURSOR;
    l_data varchar2(100);

BEGIN
   execute immediate ('alter session set nls_language=''RUSSIAN'' nls_territory=''RUSSIA'' nls_date_format = ''DD.MM.YYYY HH24:MI:SS''');

   open l_cursor for 'select sysdate as data from dual';
   fetch l_cursor into l_data;
   dbms_output.put_line (l_data); -- CORRECT
 
   open l_cursor for 'select sysdate as data from dual';
   APEX_JSON.initialize_clob_output;
   APEX_JSON.open_object;
   APEX_JSON.write ('result', l_cursor);
   APEX_JSON.close_object;
   l_result := APEX_JSON.get_clob_output;
   APEX_JSON.free_output;

   dbms_output.put_line (l_result); -- INCORRECT
END;
...
Рейтинг: 0 / 0
22.07.2020, 13:45
    #39982685
Migelle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APEX_JSON не понимает nls сессии?
Саша Сплинтер,

Судя по всему он NLS-ом не пользуется, а пишет в каком-то едином формате(в xml такой же формат даты).
Если уж очень надо конкретный формат даты то надо просто задать его в запросе:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DECLARE
    l_result   CLOB;
    l_cursor   SYS_REFCURSOR;
    l_data     VARCHAR2 (100);
BEGIN
    OPEN l_cursor FOR 'select to_char(sysdate,''DD.MM.YYYY HH24:MI:SS'') as data from dual';
    APEX_JSON.initialize_clob_output;
    APEX_JSON.open_object;
    APEX_JSON.write ('result', l_cursor);
    APEX_JSON.close_object;
    l_result   := APEX_JSON.get_clob_output;
    APEX_JSON.free_output;
    Dbms_output.put_line (l_result); 
END;
...
Рейтинг: 0 / 0
22.07.2020, 14:06
    #39982703
APEX_JSON не понимает nls сессии?
Да, дружище. я тут поспрашивал старину Анврапа... Вообщем, цирк уехал, а клоуны остались...
И нет, в моем случае мне нужна фитча пакета, в которой передаешь курсор APEX_JSON.write ('result', l_cursor) с запросом select * from Table_name, а работу делают за тебя ))

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
PACKAGE BODY APEX_190200.wwv_flow_json

-- default format for dates and timestamps

--==============================================================================

c_date_iso8601             constant varchar2(30) := 'yyyy-mm-dd"T"hh24:mi:ss"Z"';

c_timestamp_iso8601        constant varchar2(30) := 'yyyy-mm-dd"T"hh24:mi:ss"Z"';
c_timestamp_iso8601_tzd    constant varchar2(35) := 'yyyy-mm-dd"T"hh24:mi:sstzh:tzm';
c_timestamp_iso8601_tzr    constant varchar2(35) := 'yyyy-mm-dd"T"hh24:mi:sstzr';

c_timestamp_iso8601_ff     constant varchar2(35) := 'yyyy-mm-dd"T"hh24:mi:ss.ff"Z"';
c_timestamp_iso8601_ff_tzd constant varchar2(35) := 'yyyy-mm-dd"T"hh24:mi:ss.fftzh:tzm';
c_timestamp_iso8601_ff_tzr constant varchar2(35) := 'yyyy-mm-dd"T"hh24:mi:ss.fftzr';
...
Рейтинг: 0 / 0
22.07.2020, 15:08
    #39982746
Migelle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APEX_JSON не понимает nls сессии?
В iso8601 много кто живет, поэтому и придумывать не стали
Саша Сплинтер
а работу делают за тебя

Придется часть работы все-таки выполнить :)) Или в запросе или в анализе ответа.
...
Рейтинг: 0 / 0
22.07.2020, 15:14
    #39982749
APEX_JSON не понимает nls сессии?
Ага, ребята круто сэкономили на коде )))
SELECT * FROM SYS.NLS_SESSION_PARAMETERS возвращает в сессии всё правильное.
Поправил заголовок пакета, кинул баг репорт и пошёл пить кофе.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX_JSON не понимает nls сессии? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]