sql >> データベース >  >> RDS >> Oracle

sys_connect_by_path区切り文字が列の値に存在しないのに、なぜOra-30004を取得するのですか?

    これは虫の匂いがします。これを回避してロジックを実装する必要がある場合は、代わりに、11.2.0.4で正常に機能する再帰サブクエリ因数分解(recursive With)を使用できます。

    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. 接続されたユーザーをOracle10gデータベーススキーマから削除する

    2. 複数の行を集計せずに単一の行に結合する [Oracle]

    3. csvファイルをpostgresqlにインポートしようとしているときに、最後に予期された列の後に追加のデータがあります

    4. SQLクエリ内で数学を実行してパーセント差を計算するにはどうすればよいですか?