如何使用记录类型、对象和构造函数在 PLSQL 中给出多个输入值?

Posted

技术标签:

【中文标题】如何使用记录类型、对象和构造函数在 PLSQL 中给出多个输入值?【英文标题】:How can I give multiple input values in PLSQL using record type, object and constructor? 【发布时间】:2017-10-15 10:56:46 【问题描述】:

您能帮我编写一个 PLSQL 代码来为单个变量传递“多个输入值”吗?请帮助我如何通过使用记录类型、对象和构造函数来编写匿名 PLSQL 块。

谢谢,

问候, 韦雷什

【问题讨论】:

因为我只有对我的数据库的读取权限,所以我尝试使用像这样的集合来读取输入 声明类型 TEMpRec 是记录(EmployeeID EMPLOYEES.EMPLOYEE_ID%TYPE, LastName EMPLOYEES.LAST_NAME%TYPE);类型 TEmpList 是 TEMpRec 表; vEmpList 临时列表;我尝试在 BEGIN 部​​分使用 for 循环将它们传递给 vEmpList。 【参考方案1】:

这是一种方法:

HR@XE> CREATE OR REPLACE TYPE NUM_ARRAY AS TABLE OF NUMBER;
  2  /

Type created.

HR@XE> create or replace procedure demo_sp (
  in_array in num_array,
  out_sum out number
  )
  is
  BEGIN
  out_sum := 0;
  for i in 1 ..in_array.count loop
  out_sum := out_sum + in_array(i);
  END LOOP;
 END;
 /

Procedure created.

HR@XE> DECLARE
total  NUMBER;
nos NUM_ARRAY;
BEGIN
SELECT ROWNUM BULK COLLECT  INTO nos  FROM dual CONNECT BY ROWNUM<=5;
FOR I IN 1 .. nos.COUNT LOOP
dbms_output.put_line(nos(i));
end loop;
demo_sp(nos,total);
dbms_output.put_line('Total is: '||total);
END;
/
1
2
3
4
5
Total is: 15

PL/SQL procedure successfully completed.

HR@XE> 

【讨论】:

以上是关于如何使用记录类型、对象和构造函数在 PLSQL 中给出多个输入值?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript的理解记录

oracle plsql中同时记录类型、Collection和Bulk collect

SQL记录-PLSQL包

R语言下,List类型对象的导出

无法访问 plsql 函数返回的对象类型

Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器