Oracle
 sql >> база данни >  >> RDS >> Oracle

Защо получавам Ora-30004, когато разделителят sys_connect_by_path не присъства в стойностите на колоните

Това мирише на бъг. Ако трябва да го заобиколите и да приложите вашата логика, като алтернатива можете да използвате рекурсивно факторизиране на подзаявки (рекурсивно с), което работи добре в 11.2.0.4:

SQL> with t (id, label, parentid, reportlevel, fake_connect_by_path) as (
  2  select id, label, parentid, 0 as reportlevel, ' -> ' || label as fake_connect_by_path
  3    from temptable
  4   where parentid is null
  5   union all
  6  select tt.id, tt.label, tt.parentid, reportlevel + 1, t.fake_connect_by_path || ' -> ' || tt.label as fake_connect_by_path
  7    from temptable tt
  8    join t on t.id = tt.parentid
  9  )
 10  select fake_connect_by_path
 11    from t;
FAKE_CONNECT_BY_PATH
--------------------------------------------------------------------------------
 -> ninechars
 -> Im stumped
 -> - Unknown -
 -> ninechars -> erewrettt



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на колони от текущата и предходната година в Oracle

  2. Списък за избор на Oracle apex и скриване на стойности

  3. Как трябва да редактирам заявката, за да подобря производителността, като същевременно запазя съществуващата структура?

  4. Python Oracle, грешка при вмъкване на None

  5. Oracle Индекси и типове индекси в Oracle с пример