Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tại sao tôi nhận được Ora-30004 khi dấu phân cách sys_connect_by_path không có trong giá trị cột

Điều này có mùi giống như một con bọ. Nếu bạn cần giải quyết vấn đề đó và triển khai logic của mình, bạn có thể sử dụng tính toán truy vấn con đệ quy (recursive With), hoạt động ổn trong 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 JDBC UCP và Java

  2. MySQL tương đương với SEQUENCE.NEXTVAL của Oracle

  3. Lỗi trình cài đặt máy khách Oracle 12c

  4. Hàm NLS_LOWER () trong Oracle

  5. Tiện ích:Tạo thủ tục PL / SQL để xuất dữ liệu từ bảng trong 2 phút