以下のように、db リンクを介して 2 つのテーブルからデータをフェッチするクエリがあります。
SELECT a.ID, a.NAME, b.address
FROM table1@dblink a, table2@dblink b
WHERE a.ID = b.ID;
これは完全に正常に機能します。次に、以下のようにビューを作成します。
CREATE VIEW myview
AS
SELECT a.ID, a.NAME, b.address
FROM table1@dblink a, table2@dblink b
WHERE a.ID = b.ID;
ビューが正常に作成されました。しかし、以下のようにビューからデータを選択すると:
SELECT *
FROM myview
次のようなエラーが発生します。
ORA-00942: table or view does not exist
ORA-02063: preceding line from MYLINK
おそらく問題は何でしょうか?
編集:
さまざまな方法を試したところ、さまざまなエラーが発生しました。ここに正確なクエリと最新のエラーを投稿しています。
CREATE OR REPLACE VIEW plan_view
AS
WITH plan_name AS
(SELECT fcr.argument1 AS plan_name, fcr.request_id AS request_id
FROM apps.fnd_concurrent_requests@dblink fcr
WHERE argument1 IN
('E10', 'E20', 'E40', 'E60L', 'EDC', 'PS1', 'S')
CONNECT BY PRIOR fcr.request_id = fcr.parent_request_id
START WITH request_id = -- '58043920'
(SELECT MAX (request_id) AS request_id
FROM apps.fnd_concurrent_requests@dblink
WHERE description = 'Mail Program'
AND actual_start_date >=
TO_DATE ( TO_CHAR (TRUNC (SYSDATE - 1),
'mm-dd-yyyy'
)
|| '05:00:00 PM',
'MM-DD-YYYY HH:MI:SS PM'
)
AND actual_start_date < SYSDATE)),
e10 AS
(SELECT TRIM
(BOTH ' ' FROM (SELECT meaning
FROM apps.fnd_lookup_values@dblink
WHERE lookup_type = 'CP_STATUS_CODE'
AND lookup_code = fcr.status_code
AND view_application_id = 0)
) status,
TRIM
(BOTH ' ' FROM (SELECT meaning
FROM apps.fnd_lookup_values@dblink
WHERE lookup_type = 'CP_PHASE_CODE'
AND lookup_code = fcr.phase_code
AND view_application_id = 0)
) phase,
fcr.request_id AS rid,
fcr.actual_start_date AS start_date,
fcr.actual_completion_date AS completion_date
FROM apps.fnd_concurrent_requests@dblink fcr
CONNECT BY PRIOR fcr.request_id = fcr.parent_request_id
START WITH request_id = (SELECT request_id
FROM plan_name
WHERE plan_name IN ('E10')))
SELECT 'E10' "PLAN_NAME", (SELECT MIN (start_date)
FROM e10) "START_DATE",
(SELECT COUNT (rid)
FROM e10)
FROM DUAL
クエリから直接選択しようとすると、適切な出力が得られます。しかし、ビューを作成して試した後select * from plan_view
、次のエラーが発生します。
ORA-00604: error occurred at recursive SQL level 1
ORA-00904: "FCR"."REQUEST_ID": invalid identifier