Как исправить ошибку «таблица или представление не существует»

Имя пакета «emp_helper» было создано под пользователем «emp».

  1. Создан новый пользователь emp_client, которому разрешено выполнение и права отладки для пакета emp_helper.
  2. Он имеет функцию, и его код приведен ниже.

Когда я запустил процедуру с вводом (111 и FULL), я опустился ниже

ORA-00942: table or view does not exist
ORA-06512: at "EMP.EMP_HELPER", line 18
ORA-06512: at line 10

**Note:** Line 10: v_lst_no   NUMBER;
Line 18: SELECT

CREATE OR REPLACE PACKAGE BODY emp.emp_helper AS

    FUNCTION get_version_no (
        p_countryid          IN VARCHAR2,
        p_emp_type           IN VARCHAR2,
        p_processed_version  OUT NUMBER
    ) RETURN NUMBER
    AS
        v_latest_no        NUMBER;
        v_lst_no           NUMBER;
        v_job_in_progress  VARCHAR2(1);
        v_result           NUMBER;
        v_cust_cnt         NUMBER;
    BEGIN
        BEGIN
            SELECT MIN(version_no) INTO v_lst_no
            FROM   emp_identification
            WHERE  country_id = p_countryid;                 
        END;

        p_processed_version := v_lst_no;
        RETURN v_latest_no;
    END;

END emp_helper;

Я ожидаю, что число будет возвращено при выполнении.

🤔 А знаете ли вы, что...
Oracle Database обеспечивает поддержку и обучение разработчиков и администраторов баз данных через Oracle Academy и Oracle University.


79
1

Ответ:

Используйте EMP.emp_identification вместо emp_identification и GRANT SELECT ON EMP.emp_identification TO emp_user. Или вы можете создать SINONYM для EMP.emp_identification (общедоступный или только в схеме emp_user).