powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод dbms_output ghb из анонимной процедуры к Oracle python 3
2 сообщений из 2, страница 1 из 1
Вывод dbms_output ghb из анонимной процедуры к Oracle python 3
    #39429954
pamibol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Вопрос в следующем.
Есть анонимная процедура которая выполняется на нескольких сотнях БД
Примерно такая
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
declare
 vOutInfo varchar(400);
  procedure 
  UpdateAccessLevelInOC(vLastName IN varchar2,
                      vName IN varchar2,
                      vSName IN varchar2,
                      vAccessLevel IN number,
                      vIfUserID IN number,
                      vOutInfo OUT varchar2)
  is
    vUserID number;
    vLNS  varchar2(100);
    vGenerateEvent varchar2(1000);
    vErrMoreRows exception;
    pragma Exception_Init(vErrMoreRows, -01422);
  begin
    if (vIfUserID is not null) then
       тра та та 
    else   
     Тра та та 
    end if;

  update Тра та та
  set ля ля ля 

  if (sql%rowcount = 1) then
    commit;
    vGenerateEvent := '”становить уровень допуска"
    vOutInfo := vGenerateEvent;
  else
    rollback;
  end if;

  exception
    when NO_DATA_FOUND then
      vOutInfo := 'ERROR NOT FOUND USER WITH LAST NAME = ' || vLastName || ' NAME = ' || vName || ' SECOND NAME = '|| vSName;
    when vErrMoreRows then
       vOutInfo := 'ERROR FOUND MORE 1 USER WITH LAST NAME = ' || vLastName || ' NAME = ' || vName || ' SECOND NAME = '|| vSName;
    when others then
      vOutInfo := SQLERRM;
      
end;
begin
  UpdateAccessLevelInOC(vLastName => ':vLastName:',vName => ':vName:',vSName =>':vSName:',vIfUserID=>:vIfUserID:,vAccessLevel =>:vAccessLevel:, vOutInfo => vOutInfo); 
  dbms_output.put_line(vOutInfo);
end;



суть не в самой процедуре, процедура работает верно и делает, что ей положено.

Когда выполняешь ее в PL\SQL Developer или любой другой среде выполнения то получаю в ответ вывод через dbms_output.put_line(vOutInfo)
здесь проблем нет.

Но мне необходимо, что бы эта процедура выполнялась в Python.
С учетом того, что она не хранимая а анонимная я использую не
Код: python
1.
 cur.callproc('Имя процедуры', (Парамерты))


а считываю текст процедуры из файла пеняю необходимые параметры и выполняю через
Код: python
1.
cur.execute(vEcecuteSQL)


процедура выполняется в базе все меняется как и требовалось не я не знаю как получить вывод dbms_output или OUT который есть процедуре.
Если использовать всякие Fetch то полую сообщение о том, что в
Код: python
1.
cur.execute(vEcecuteSQL)

нет SQL запроса типа
Код: python
1.
2.
    print(cur.fetchall())
cx_Oracle.InterfaceError: not a query



Народ, кто может посоветовать как получить вывод из анонимной процедуры?
...
Рейтинг: 0 / 0
Вывод dbms_output ghb из анонимной процедуры к Oracle python 3
    #39430592
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamibol,


Ну читай документацию по Cl_Oracle.
Очень может быть, что такая возможность вообще не поддерживается.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод dbms_output ghb из анонимной процедуры к Oracle python 3
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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