2

次の Query1 は Oracle で問題ありません。同じ機能を Derby で実行したいと考えています。ここで従うべき提案の 1 つとして、Query2 を取得しました。しかし、それでも Error1 がスローされます。これを取り除くために誰かが私を助けてください。私は何をすべきか?

クエリ 1:

Select f.folder_id, f.identifier

            From FOLDER f, STOREENT se
            Where f.type = 'AttributeFolder'
            And se.storeent_id = f.storeent_id 
            And se.identifier = 'Global_CAS'
            And f.identifier = 10051 
connect by prior f.folder_id = f.parentfolder_id
start with f.identifier = 'Categories Descriptors [Global.B2C.Sales]'

クエリ 2:

with cte as (

select folder_id, f.identifier, cast(null as varchar(255)) parentfolder_id,

       0 as depth,
       se.identifier as se_identifier
       from folder f
       join storeent se on se.storeent_id = f.storeent_id
       where f.identifier = 'A'
    union all
    select f.folder_id, f.identifier, f.parentfolder_id,
       cte.depth + 1 as depth,
       se.identifier as se_identifier
    from folder f
    join storeent se on se.storeent_id = f.storeent_id
    join cte cte on f.parentfolder_id = cte.folder_id
)
Select parentfolder_id, folder_id, identifier, depth
from cte

エラー 1:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "with" at line 1, column 1
4

1 に答える 1

4

現在、derby は再帰クエリをサポートしていません。https ://issues.apache.org/jira/browse/DERBY-11 (2004 年にオープン、2014 年に最後のコメント) を参照してください。残念ながら、単一のクエリでこれを行うことはできません。ある種のツリー トラバーサル ループを自分で作成する必要があります。

于 2014-06-04T08:40:55.973 に答える