powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
5 сообщений из 5, страница 1 из 1
ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
    #39967887
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оказывается, не всегда
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
WITH T AS
(
SELECT :"SYS_B_00" ID, :"SYS_B_01" s FROM dual UNION ALL
SELECT :"SYS_B_02" ID, :"SYS_B_03" s FROM dual UNION ALL
SELECT :"SYS_B_04" ID, :"SYS_B_05" s FROM dual UNION ALL
SELECT :"SYS_B_06" ID, :"SYS_B_07" s FROM dual
)
SELECT *
   FROM T

PIVOT 
(
   SUM(s)
   FOR ID IN (:"SYS_B_08", :"SYS_B_09", :"SYS_B_10")
)
;

ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot

----------

а так работает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
BEGIN
execute IMMEDIATE 'alter session set cursor_sharing=force';
OPEN :p_cursor FOR '
WITH T AS
(
SELECT 1 ID, 1 s FROM dual UNION ALL
SELECT 1 ID, 2 s FROM dual UNION ALL
SELECT 2 ID, 4 s FROM dual UNION ALL
SELECT 3 ID, 9 s FROM dual
)
SELECT *
   FROM T

PIVOT 
(
   SUM(s)
   FOR ID IN (''1'', ''2'', ''3'')
)
';
execute IMMEDIATE 'alter session set cursor_sharing=exact';
END;

и в v$sql_text_with_newlines показывает тот самый первый запрос
...
Рейтинг: 0 / 0
ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
    #39967914
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx

а так работает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
BEGIN
execute IMMEDIATE 'alter session set cursor_sharing=force';
OPEN :p_cursor FOR '
WITH T AS
(
SELECT 1 ID, 1 s FROM dual UNION ALL
SELECT 1 ID, 2 s FROM dual UNION ALL
SELECT 2 ID, 4 s FROM dual UNION ALL
SELECT 3 ID, 9 s FROM dual
)
SELECT *
   FROM T

PIVOT 
(
   SUM(s)
   FOR ID IN (''1'', ''2'', ''3'')
)
';
execute IMMEDIATE 'alter session set cursor_sharing=exact';
END;

и в v$sql_text_with_newlines показывает тот самый первый запрос


где сдесь "переменная привязки не поддерживается внутри операции pivot|unpivot"?

.....
stax
...
Рейтинг: 0 / 0
ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
    #39967917
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
andreymx

а так работает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
BEGIN
execute IMMEDIATE 'alter session set cursor_sharing=force';
OPEN :p_cursor FOR '
WITH T AS
(
SELECT 1 ID, 1 s FROM dual UNION ALL
SELECT 1 ID, 2 s FROM dual UNION ALL
SELECT 2 ID, 4 s FROM dual UNION ALL
SELECT 3 ID, 9 s FROM dual
)
SELECT *
   FROM T

PIVOT 
(
   SUM(s)
   FOR ID IN (''1'', ''2'', ''3'')
)
';
execute IMMEDIATE 'alter session set cursor_sharing=exact';
END;


и в v$sql_text_with_newlines показывает тот самый первый запрос


где сдесь "переменная привязки не поддерживается внутри операции pivot|unpivot"?

.....
stax
"переменная привязки не поддерживается внутри операции pivot|unpivot"

относится к первому запросу


или я не понял твоего поста
...
Рейтинг: 0 / 0
ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
    #39967922
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

возможно я не понял "а так работает",
во втором запросе нет переменной привязки внутри
почему б ему не работать

....
stax
...
Рейтинг: 0 / 0
ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
    #39967946
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
andreymx,

возможно я не понял "а так работает",
во втором запросе нет переменной привязки внутри
почему б ему не работать

....
stax
может, я криво описал ситуацию

Оракл второй запрос трансформирует в первый
который сам по себе не работает
но у Оракла таки работает
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-56900: переменная привязки не поддерживается внутри операции pivot|unpivot
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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