나는 아래와 같이 DB 링크를 통해 두 테이블에서 데이터를 가져 오기 위해 쿼리가 있습니다수 없습니다
SELECT a.ID, a.NAME, b.address
FROM [email protected] a, [email protected] b
WHERE a.ID = b.ID;
이 완벽하게 잘 작동합니다. 그런 다음 아래와 같이보기를 만듭니다.
CREATE VIEW myview
AS
SELECT a.ID, a.NAME, b.address
FROM [email protected] a, [email protected] b
WHERE a.ID = b.ID;
보기가 성공적으로 생성되었습니다. 나는 다음과 같이 뷰에서 데이터를 선택할 때 :
ORA-00942: table or view does not exist
ORA-02063: preceding line from MYLINK
은 무엇 아마 문제가 될 수 :
SELECT *
FROM myview
나는 오류 같은거야?
편집 :
시도 다른 방법은 다른 오류가 끝났다. 내가 쿼리에서 직접 선택하려고하면
CREATE OR REPLACE VIEW plan_view
AS
WITH plan_name AS
(SELECT fcr.argument1 AS plan_name, fcr.request_id AS request_id
FROM [email protected] 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 [email protected]
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_[email protected]
WHERE lookup_type = 'CP_STATUS_CODE'
AND lookup_code = fcr.status_code
AND view_application_id = 0)
) status,
TRIM
(BOTH ' ' FROM (SELECT meaning
FROM [email protected]
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 [email protected] 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
@zephrus : 뷰를 작성하는 경우 원격 데이터베이스에서 보신 다음 db 링크를 사용하여 뷰에 액세스하시지 않습니까? –
이것이 실제로 문제입니다. 상위 DB에서 일부 내부 정책처럼보기를 만들 수 없습니다. 그리고 두 번째 데이터베이스에서 생성 된이 뷰는 다른 DB에서도 dblink를 통해 액세스됩니다. – zephyrus
세 번째 컬럼에는 이름이 없기 때문에'ORA-00998 : 컬럼 별칭으로이 표현식의 이름을 지정해야합니다 .'라는 오류 메시지가 나타납니다. 가능한 한 가장 작은 예제로 샘플 코드를 축소하여 여전히 오류가 발생할 수 있습니다. –