внешний объект не существует - PullRequest
0 голосов
/ 11 октября 2018

Я пытался выполнить эту процедуру, но она выдает эту ошибку, и я понятия не имею, что ее вызывает.Прошло 2 дня, и я все еще застрял в нем.По сути, процедура должна выполнить запрос и сохранить результат в новой таблице.Ниже приведена ошибка, которую я получаю.

ORA-06564: объект OUTER не существует ORA-06512: в «HR.RPG», строка 17 ORA-06512: в строке 1

и это мой код процедуры:

create or replace procedure "rpg"

is

  v_full_name VARCHAR2(500);
  sal varchar(200);
  jobid varchar(100);
  cpct varchar(50);
  mgid varchar(25);
  did varchar(20);
  cid varchar(20);
  rid varchar(20);
  lid varchar(20);

  Begin

  execute immediate 'create table resquery as
  (
  select HR.EMPLOYEES.FIRST_NAME||'' ''||HR.EMPLOYEES.LAST_NAME AS 
 Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
 HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as 
 mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.COUNTRIES_EXTERNAL.COUNTRY_ID as 
 country,HR.DW_REGION.R_ID as region,
 HR.LOCATIONS.LOCATION_ID as loc
 from HR.EMPLOYEES
 join HR.DEPARTMENTS ON 
 HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
 join HR.LOCATIONS    ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
 join HR.COUNTRIES_EXTERNAL ON     HR.LOCATIONS.COUNTRY_ID=HR.COUNTRIES_EXTERNAL.COUNTRY_ID
 join HR.DW_REGION    ON HR.COUNTRIES_EXTERNAL.REGION_ID=HR.DW_REGION.R_ID
 where HR.COUNTRIES_EXTERNAL.COUNTRY_ID=''US''
 AND trunc(HR.EMPLOYEES.HIRE_DATE) BETWEEN     TO_DATE(''16/08/2002'',''DD/MM/YYYY'') AND 
 TO_DATE(''07/12/2007'',''DD/MM/YYYY''))';

  end;
  /

1 Ответ

0 голосов
/ 11 октября 2018

решено !!!

На самом деле я создал каталог OUTER, когда вошел в систему со схемой SYSTEM, и создал там внешнюю таблицу.Теперь я вошел как схема HR и использовал эту внешнюю таблицу с внешним каталогом в запросах схемы hr, которые он не смог найти, так как каталог находится в схеме SYSTEM.Поэтому я изменил ссылки на внешние таблицы в запросах моей текущей процедуры, которые выполняли эту работу, и мне также пришлось предоставить привилегии для выполнения процедуры.

AUTHID CURRENT_USER is
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...