PL/SQL을 사용하여 보고서를 만들려고 할 때 다음과 같은 문제로 인해 두 테이블에 액세스하는 SQL 쿼리를 만들었습니다. 원격 DB 자체는 예상 된 결과를 반환 혼자 쿼리를 실행하는 DB 링크를 사용하지만 매우 동일한 쿼리를 실행하고 커서로 결과를 넣을 때 나는PL/SQL 스크립트에서 DB 링크를 사용하면 "테이블을 찾을 수 없습니다."라는 오류가 발생합니다.
PL/SQL: ORA-00942: table or view does not exist
오류가 발생합니다.
내가 각 테이블에 사용하고있는 별칭과 관련이 있는지 또는 선택 문이 로컬 테이블을 선택하려고했는지 확실하지 않습니다. 모르겠다. 제안 사항이 있습니까?
PL/SQL :
DECLARE
CURSOR t_bug_details IS (SELECT h.*
FROM [email protected] h,
[email protected] rml
WHERE h.product_id IN (123)
AND h.category IN ('category')
AND h.status < 4
AND h.status NOT IN (1,2,3)
AND h.release_status IN (upper('P'))
--AND h.programmer IN (upper('MRFOO'))
AND h.some_id = rml.some_id
and rownum <=400);
REPORT_DAY VARCHAR2(40);
mail_html clob;
mail_bod clob;
BEGIN
FOR v_some_details in t_bug_details
LOOP
REPORT_DAY := TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS');
DBMS_OUTPUT.PUT_LINE(REPORT_DAY || '|' ||
v_some_details.reptnom || '|' ||
v_some_details.subject || '|' ||
v_some_details.field || '|' ||
v_some_details.release_status || '|' ||
v_some_details.status || '|' ||
v_some_details.category || '|' ||
v_some_details.sub_field || '|' ||
v_some_details.datef1 || '|' ||
v_some_details.field_by || '|' ||
v_some_details.programmer || '|' ||
TRUNC(sysdate - v_some_details.datef1) || '|' ||
TRUNC(sysdate - v_some_details.upd_date)|| '|' ||
v_some_details.fix_avail_date|| '|' ||
v_some_details.bug_type || '|' ||
v_some_details.base_reptnom);
END LOOP;
EXCEPTION WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.PUT_LINE ('NO RECORDS FOUND');
END;