现在项目用到一个删除多表数据的功能,想将id数组传给存储过程来实现。
自己定义的类型为
CREATE OR REPLACE TYPE array_num IS TABLE OF NUMBER写的例子存储过程为:
create or replace procedure proc_delete(arr in array_num) isbegin
for i in 1.. arr.last loop
dbms_output.put_line('12222');
end loop;end proc_delete;报的错误为:
Compilation errors for PROCEDURE BJYD.PROC_DELETEError: PLS-00201: 必须声明标识符 'PLITBLM'
Line: 0
Text: create or replace procedure proc_delete(arr in array_num) isError: PLS-00302: 必须声明 'COUNT' 组件
Line: 4
Text: for i in 1.. arr.count loopError: PL/SQL: Statement ignored
Line: 4
Text: for i in 1.. arr.count loop
但是在另外一个库编译就没有问题,是不是要给什么权限啊,我的类型和存储过程都在一个用户下
自己定义的类型为
CREATE OR REPLACE TYPE array_num IS TABLE OF NUMBER写的例子存储过程为:
create or replace procedure proc_delete(arr in array_num) isbegin
for i in 1.. arr.last loop
dbms_output.put_line('12222');
end loop;end proc_delete;报的错误为:
Compilation errors for PROCEDURE BJYD.PROC_DELETEError: PLS-00201: 必须声明标识符 'PLITBLM'
Line: 0
Text: create or replace procedure proc_delete(arr in array_num) isError: PLS-00302: 必须声明 'COUNT' 组件
Line: 4
Text: for i in 1.. arr.count loopError: PL/SQL: Statement ignored
Line: 4
Text: for i in 1.. arr.count loop
但是在另外一个库编译就没有问题,是不是要给什么权限啊,我的类型和存储过程都在一个用户下
Compilation errors for PROCEDURE BJYD.PROC_DELETE你这个过程是在包BJYD里的吧?建议贴出全的代码看下