powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скажите пожайлуста как это работает ?
4 сообщений из 4, страница 1 из 1
Скажите пожайлуста как это работает ?
    #40101052
максим_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
PROCEDURE REQ_LOAD_REPORT(P_CLIENTID IN NUMBER) as
       csv clob; 
       l_body clob;   
    begin
      select json_object(   
               --'columnsPref' value columnsPref.val
               --,'fileUri' value '\\rumoshqc01013\Shares2\MediaLogic\DataRepository\Samsung\Weekly Report\Samsung 2017-2020 Report.xlsx'
               'callableStmtAfterInsert' value '
              begin  gw_load.load_report('||P_CLIENTID||'); end;
              ' STRICT)
     into l_body
     from dual;
      http_bomb(csv => csv,
               p_url => 'http://10.208.32.132:8080/api/parser?'||
            'fileUri='||
            'http://-------/adwords/v2/get_report.php?client='||P_CLIENTID||
            '&tableName=G_GW_STATISTICS&format=CSVFormat.RFC4180.withFirstRecordAsHeader()'||
            '.withIgnoreHeaderCase().withAutoFlush(true)&charset=utf-8&user=tableau'||
            '&isReturnFileWhileError=true'||
            '&mode=insert&nlsDateFormat=YYYY-MM-DD&skipErr=true',p_arrayOfHeaders =>g_header,p_body =>l_body,
            p_proc_name => 'LOAD_REPORT', 
            p_inp_data =>  'CLIENTID = '||P_CLIENTID);
      P_PKG_LOAD_LOG ('GW_LOAD', 'LOAD_REPORT', 'CLIENTID = '||P_CLIENTID ,'INFO',null,csv);
    end;



Процедура работает в цикле, непонятно значение записи :
Код: plsql
1.
begin  gw_load.load_report('||P_CLIENTID||'); end;



gw_load.load_report тоже процедура, она инициализируется ?

Её результат записывается в l_body или записывается фраза begin gw_load.load_report('||P_CLIENTID||')

Что почитать ?
...
Рейтинг: 0 / 0
Скажите пожайлуста как это работает ?
    #40101074
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описание API того сайта, которому скармливается этот запрос.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скажите пожайлуста как это работает ?
    #40101075
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
максим_1991
Процедура работает в цикле, непонятно значение записи :
Код: plsql
1.
begin  gw_load.load_report('||P_CLIENTID||'); end;


Процедура формирует json вида
Код: plsql
1.
{"callableStmtAfterInsert":"\n              begin  gw_load.load_report(12345); end;\n"}


и помещает в l_body
затем зовет http_bomb, передавая полученный json в параметр p_body
Что дальше происходит с этим json - интересуйтесь внутри http_bomb.
Возможно, сформированный внутри него pl/sql блок даже кем-то выполнятеся.
Как вариант - этот кто-то слушает http://10.208.32.132:8080/api/parser
...
Рейтинг: 0 / 0
Скажите пожайлуста как это работает ?
    #40101081
максим_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, благодарю за ответ. Я распутал эту цепочку. Кратко:

Код: plsql
1.
2.
3.
4.
5.
6.
procedure http_bomb(csv in out clob in ....) as
CSV := GET_CLOBFROMURL_long_java(
p_url => p_url,
p_requestMethod  => case when nullif(length(p_body),0) is not null then 'POST' else 'GET' end ,
p_postBody          => p_body, 
p_arrayOfHeaders => p_arrayOfHeaders);



наш json передаётся в p_postBody

Функция GET_CLOBFROMURL_long_java:
Код: plsql
1.
Java_Request(p_url,clobVal,p_charset,p_connTimeout,p_readTimeout,p_requestMethod,p_arrayOfHeaders,l_postBody);



p_postBody стал l_postBody где l_postBody clob := empty_clob();

Скажите пожайлуста, когда записываетм в json процедура вызывается begin gw_load.load_report(12345)?
Результат всего описанного выше записывается сюда G_GW_STATISTICS.
Cам load_report: merge stat из G_GW_STATISTICS.

Вопрос когда успели данные появиться в G_GW_STATISTICS, если мы её запускаем до http_bomb ?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скажите пожайлуста как это работает ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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