powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
7 сообщений из 32, страница 2 из 2
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096618
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробел, не кирилица и не спецсимвол

Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  WITH nstr AS(
  2  SELECT 940 AS STR_ID, rpad('1',1)       AS STR_NAME, CAST(NULL AS NUMBER) AS PARENT_STR_ID FROM DUAL UNION
  3  SELECT 950 AS STR_ID, rpad('2',22)      AS STR_NAME, 940                  AS PARENT_STR_ID FROM DUAL UNION
  4  SELECT 972 AS STR_ID, rpad('3',11)      AS STR_NAME, 950                  AS PARENT_STR_ID FROM DUAL UNION
  5  SELECT 973 AS STR_ID, rpad('4',11)      AS STR_NAME, 972                  AS PARENT_STR_ID FROM DUAL UNION
  6  SELECT 980 AS STR_ID, rpad('5',3)       AS STR_NAME, CAST(NULL AS NUMBER) AS PARENT_STR_ID FROM DUAL UNION
  7  SELECT 981 AS STR_ID, rpad('6',20)      AS STR_NAME, 980                  AS PARENT_STR_ID FROM DUAL UNION
  8  SELECT 981 AS STR_ID, '1234 123 333 1234567Z'    AS STR_NAME, 980                  AS PARENT_STR_ID FROM DUAL
  9  --SELECT 980 AS STR_ID, rpad('7',21)             AS STR_NAME, CAST(NULL AS NUMBER) AS PARENT_STR_ID FROM DUAL
 10   )
 11              SELECT SYS_CONNECT_BY_PATH(nstr.str_name, 'Zf ') PATH,
 12                     nstr.str_id,
 13                     LEVEL
 14                FROM nstr
 15               START WITH nstr.parent_str_id IS NULL
 16*           CONNECT BY PRIOR nstr.str_id   = nstr.parent_str_id
SQL> /
ERROR:
ORA-30004: when using SYS_CONNECT_BY_PATH function, cannot have separator as
part of column value



no rows selected



.....
stax
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096625
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была такая бага.
Doc ID 786680.1
Видимо, в 11.2.0.4 вернулась.
Используйте разделитель из одного символа.
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096626
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Была такая бага.
Doc ID 786680.1
Видимо, в 11.2.0.4 вернулась.
Используйте разделитель из одного символа.
спасибо
Один символ не годится без шаманских реплейсов
Но как-то будем выворачиваться
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096631
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
Один символ не годится без шаманских реплейсов
Но как-то будем выворачиваться

chr(0) меня часто выручал в сложных случаях
...еще попробуйте для верности в Nvarchar2 скастовать - вроде Виталий отмечал, что на мультибайте не воспроизвёл, правда версию не уточнял.
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096640
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Была такая бага.
Doc ID 786680.1
Видимо, в 11.2.0.4 вернулась.
Используйте разделитель из одного символа.


много инфы дать не могу

отcтранили меня от оракля

имхо
"магическим" числом есть длина 25 (точнее равенство длин) и последний символ в пользовательских данных (STR_NAME)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
QL> WITH nstr AS(
  2  SELECT 940 AS STR_ID, rpad('1',5)       AS STR_NAME, CAST(NULL AS NUMBER) AS PARENT_STR_ID FROM DUAL UNION
  3  SELECT 950 AS STR_ID, rpad('2',20)      AS STR_NAME, 940                  AS PARENT_STR_ID FROM DUAL UNION
  4  SELECT 980 AS STR_ID, rpad('5',15)       AS STR_NAME, CAST(NULL AS NUMBER) AS PARENT_STR_ID FROM DUAL UNION
  5  SELECT 981 AS STR_ID, rpad('7',10)||'Z'             AS STR_NAME, 980  AS PARENT_STR_ID FROM DUAL
  6   )
  7              SELECT SYS_CONNECT_BY_PATH(nstr.str_name, 'Z') PATH,
  8                     nstr.str_id,
  9                     LEVEL
 10  ,length(STR_NAME) l
 11                FROM nstr
 12               START WITH nstr.parent_str_id IS NULL
 13            CONNECT BY PRIOR nstr.str_id   = nstr.parent_str_id
 14  /
ERROR:
ORA-30004: when using SYS_CONNECT_BY_PATH function, cannot have separator as part of column value



no rows selected
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096644
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
andrey_anonymous
Была такая бага.
Doc ID 786680.1
Видимо, в 11.2.0.4 вернулась.
Используйте разделитель из одного символа.
спасибо
Один символ не годится без шаманских реплейсов
Но как-то будем выворачиваться


если можете править селект, попробуйте

trim(STR_NAME) если без пробелов допустимо

....
stax
...
Рейтинг: 0 / 0
странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
    #40096646
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delete
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / странный глюк ORA-30004: при использовании функции SYS_CONNECT_BY_PATH невозможно получить
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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