arrays - 如何将数字数组传递给 Oracle 存储过程?

标签 arrays oracle numbers

为了将数字数组传递给 Oracle 存储过程,我创建了如下类型:

create or replace type wareconfig_array as table of NUMBER;

然后我像这样创建了我的程序,当我编译时,它显示成功,然后我在运行时将一个数组传递给 [1,2]m_array它会抛出一个错误:“ORA-06531:引用未初始化的集合”你能告诉我我做错了什么吗?非常感谢!

create or replace procedure delete_waregroup(m_array in wareconfig_array) is
begin
  for i in 1..m_array.count loop
      update "warehouse_group" set "deleted"=1 where "id"=m_array(i);
  end loop;
  commit;
EXCEPTION
   when others THEN
        save_proc_error('proc',sqlcode,'删除仓库组信息发生异常!',sqlerrm);
        raise_application_error(-20003,'数据操作异常!异常编码:'|| sqlcode || '异常描述:'|| sqlerrm||dbms_utility.format_error_backtrace());
        rollback; ---回滚
end delete_waregroup;

最佳答案

尝试:

declare 
   x wareconfig_array;
begin
  x := wareconfig_array(1,3); -- initialize an array and fill it with values
  delete_waregroup( x );
end;
/

现场(工作)演示:http://sqlfiddle.com/#!4/af403e/1

关于arrays - 如何将数字数组传递给 Oracle 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46821653/

相关文章:

php - MySQL/PHP mysql_fetch_array() 始终丢失第一行

c++ - 使用 BigInteger 数组时出现 Malloc 错误

python - 如何设置模型以将 AutoField 与 Python 中的旧数据库结合使用?

Oracle 嵌套表和列名

arrays - 在一个有 N 个元素的整数数组中,找到最少的 k 个元素?

MongoDB 的 NumberLong 只有 54 位签名?

javascript - 如何让 OR 运算符在此 JavaScript 数组中工作

java - 在二维字符数组 Java 中存储矩阵

database - 具有不同 SID 的 Oracle 导出数据库

javascript - 在 JavaScript 中,为什么 (Number.MAX_VALUE - 1) < Number.MAX_VALUE 总是计算为 false?