powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему не работает alter session для dblink?
3 сообщений из 3, страница 1 из 1
Почему не работает alter session для dblink?
    #39749628
Basil_Tsvetkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Как можно управлять сессией которая открыта внутри dblink?
Такая штука не работает.


begin
dbms_utility.exec_ddl_statement@dblink('ALTER SESSION SET PLSCOPE_SETTINGS=''IDENTIFIERS:NONE, STATEMENTS:NONE''');
end;

select * from V$PARAMETER@dblink;

292 3097 plscope_settings 2 IDENTIFIERS:ALL,STATEMENTS:ALL IDENTIFIERS:ALL,STATEMENTS:ALL IDENTIFIERS:NONE TRUE TRUE IMMEDIATE TRUE TRUE SYSTEM_MOD FALSE FALSE FALSE plscope_settings controls the compile time collection, cross reference, and storage of PL/SQL source code identifier and SQL statement data 3026899342 0
...
Рейтинг: 0 / 0
Почему не работает alter session для dblink?
    #39749747
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что ALTER SESSION не DDL. У dbms_utility.exec_ddl_statement под капотом DBMS_SQL. A посколько для DDL парс есть парс+выполнение в одном флаконе, то dbms_utility.exec_ddl_statement выполняет только парс и посему не-DDL не катит:

Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
SQL> ALTER SESSION SET PLSCOPE_SETTINGS='IDENTIFIERS:NONE,STATEMENTS:NONE'
  2  /

Session altered.

SQL> SELECT  VALUE
  2    FROM  V$PARAMETER
  3    WHERE NAME = 'plscope_settings'
  4  /

VALUE
--------------------------------------------------------------------------------
IDENTIFIERS:NONE,STATEMENTS:NONE

SQL> DECLARE
  2     V_CUR PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;
  3  BEGIN
  4     DBMS_SQL.PARSE(V_CUR,'ALTER SESSION SET PLSCOPE_SETTINGS=''IDENTIFIERS:ALL,STATEMENTS:ALL''', DBMS_SQL.NATIVE);
  5     DBMS_SQL.CLOSE_CURSOR(V_CUR);
  6  END;
  7  /

PL/SQL procedure successfully completed.

SQL> SELECT  VALUE
  2    FROM  V$PARAMETER
  3    WHERE NAME = 'plscope_settings'
  4  /

VALUE
--------------------------------------------------------------------------------
IDENTIFIERS:NONE,STATEMENTS:NONE

SQL> DECLARE
  2     V_CUR PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;
  3     V_RES PLS_INTEGER;
  4  BEGIN
  5     DBMS_SQL.PARSE(V_CUR,'ALTER SESSION SET PLSCOPE_SETTINGS=''IDENTIFIERS:ALL,STATEMENTS:ALL''', DBMS_SQL.NATIVE);
  6  
  7     V_RES := DBMS_SQL.EXECUTE(V_CUR);
  8     DBMS_SQL.CLOSE_CURSOR(V_CUR);
  9  END;
 10  /

PL/SQL procedure successfully completed.

SQL> SELECT  VALUE
  2    FROM  V$PARAMETER
  3    WHERE NAME = 'plscope_settings'
  4  /

VALUE
--------------------------------------------------------------------------------
IDENTIFIERS:ALL,STATEMENTS:ALL

SQL> 



Так-что:

Код: 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.
SQL> SELECT  VALUE
  2    FROM  V$PARAMETER@PDB1SOL12
  3    WHERE NAME = 'plscope_settings'
  4  /

VALUE
--------------------------------------------------------------------------------
IDENTIFIERS:NONE

SQL> DECLARE
  2     V_CUR PLS_INTEGER := DBMS_SQL.OPEN_CURSOR@PDB1SOL12;
  3     V_RES PLS_INTEGER;
  4  BEGIN
  5     DBMS_SQL.PARSE@PDB1SOL12(V_CUR,'ALTER SESSION SET PLSCOPE_SETTINGS=''IDENTIFIERS:ALL''', DBMS_SQL.NATIVE);
  6  
  7     V_RES := DBMS_SQL.EXECUTE@PDB1SOL12(V_CUR);
  8     DBMS_SQL.CLOSE_CURSOR@PDB1SOL12(V_CUR);
  9  END;
 10  /

PL/SQL procedure successfully completed.

SQL> SELECT  VALUE
  2    FROM  V$PARAMETER@PDB1SOL12
  3    WHERE NAME = 'plscope_settings'
  4  /

VALUE
--------------------------------------------------------------------------------
IDENTIFIERS:ALL

SQL> 



SY.
...
Рейтинг: 0 / 0
Почему не работает alter session для dblink?
    #39750094
Basil_Tsvetkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

Спасибо за подкапотные подробности.

А ведь мог бы и сам догадаться..
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему не работает alter session для dblink?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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