Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengapa saya mendapatkan Ora-30004 ketika pembatas sys_connect_by_path tidak ada dalam nilai kolom

Ini baunya seperti serangga. Jika Anda perlu mengatasinya dan menerapkan logika Anda, sebagai alternatif Anda dapat menggunakan pemfaktoran subquery rekursif (rekursif Dengan), yang berfungsi dengan baik di 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. Bagaimana cara memastikan integritas antara tabel yang tidak terkait?

  2. Bagaimana cara terhubung ke Database Oracle menggunakan cx_Oracle dengan nama layanan dan login?

  3. Bagaimana cara melampirkan file dari direktori ke email yang dikirim dengan utl_smtp

  4. Iterasi kolom di PL/SQL

  5. Permintaan terbaik untuk mencapai indeks Oracle dengan ikatan dan nilai nol