SQLJのヘルプが必要です (はい...)。このインラインJava SQLで再帰SQLクエリを再現する方法をグーグルで検索しています。また、見つけるのが非常に難しいため、参照も大歓迎です...
私のSQLクエリ:
WITH attachedemails(id, subject, filename)
AS (
-- Ancora (224)
SELECT email
FROM (SELECT addressee.email AS email
FROM addressee
WHERE addressee.email->from
IN (SELECT address
FROM use
WHERE use.user->nickname = User.nickname <arg>)
UNION
SELECT addressee.email
FROM addressee
WHERE addressee.to
IN (SELECT address
FROM use
WHERE use.user->nickname = = User.nickname <arg>)))
AS t
WHERE email->DATE >= FROM <arg> AND email->DATE <= TO <arg> )
UNION ALL
SELECT m.id
FROM email AS m,
attachedemails AS c
WHERE m.contained_in = c.id
AND m.DATE >= FROM <arg> AND email->DATE <= TO <arg> ))
基本的に、特定のユーザーからのすべてのメールと、他のメールに添付されたメールを取得しています。結果をフィルター処理するために使用する Java 引数でマークを付けました。
SQLJ を使用して複数の行を返すにはイテレータが必要であり、サブクエリでそれらのレベルを変えることができることは承知していますが、再帰をシミュレートするのは非常に困難です。私が気付いていない、SQLJ専用の他の種類の構造があるかもしれません。誰かが助けてくれることを願っています!