PLSQL ORA 00942通过测试窗口执行存储过程时出错;“表不存在”;

PLSQL ORA 00942通过测试窗口执行存储过程时出错;“表不存在”;,plsql,plsqldeveloper,Plsql,Plsqldeveloper,用户登录到实例,并使过程和键入的数组处于用户登录级别,而deparment表处于与其单元对应的用户级别 create or replace type id_array_input VARRAY(20) OF NUMBER 例如在plsql中 create or replace type id_array_input VARRAY(20) OF NUMBER 产品 |__TestProc 类型 |__id\u数组\u输入 表格 |__单元详细信息 用户 |__单位名称 |__单位名称 crea

用户登录到实例,并使过程和键入的数组处于用户登录级别,而deparment表处于与其单元对应的用户级别

create or replace type id_array_input VARRAY(20) OF NUMBER
例如在plsql中

create or replace type id_array_input VARRAY(20) OF NUMBER
产品
|__TestProc
类型
|__id\u数组\u输入
表格
|__单元详细信息
用户
|__单位名称
|__单位名称

create or replace type id_array_input VARRAY(20) OF NUMBER
其中单位名称将与单位详细信息中的单位相对应。 每个单元名称下都有单独的表。在本例中,我将获取部门详细信息

create or replace type id_array_input VARRAY(20) OF NUMBER
类型整数数组

create or replace type id_array_input VARRAY(20) OF NUMBER
存储过程

create or replace type id_array_input VARRAY(20) OF NUMBER
CREATE OR REPLACE PROCEDURE TESTPROC(id_array in id_array_input,output_data out id_array_input)

as

unit varchar2(55);

stmt varchar2(55);
count number;

    begin
        output_data:=id_array_input();

        for i in 1..id_array.count loop

        select unit_name into unit from unit_details where unit_id =id_array(i);

        stmt:="select count(*) from "|| unit||".department_details where department_name is not null';

        execute immediate stmt into count;  

        output_data.extend;
        output_data(i):=count;

        end loop;
    end;
end TESTPROC;
测试窗口过程调用

create or replace type id_array_input VARRAY(20) OF NUMBER
declare
input id_array_input;
output id_array_input;
as

input:=id_array_input(599,800);
TESTPROC(input,output);
for i in 1..output.count loop
dbms_output.put_line('-----------'||output(i)||'-------------');
end loop;
end ;

不确定这意味着什么:“当department表处于与其单位对应的用户级别时。”什么是“单位”?如果必须猜测,我会说其中一个
单位名称。department\u details
表不存在,或者呼叫帐户没有
选择
权限。您检查过了吗?通过sql窗口执行时,它工作正常。但当我试图通过过程来执行它时,它给了我那个错误。单元是一个模式。每个单元下都有不同的表格。在我的示例中,我尝试从单元下的一个表中获取。对,通常这意味着您通过角色拥有特权,而不是存储过程所需的直接授予。已修复它。通过在过程中使用authid current_user子句。感谢您的时间和努力。