使用数组作为out参数编写过程

时间:2017-08-23 17:03:03

标签: oracle plsql

我无法创建PL / SQL存储过程。例如,返回deptno 20中所有员工的名字。

  create table emp(
  empno    number(4,0),
  ename    varchar2(10),
  job      varchar2(9),
  mgr      number(4,0),
  hiredate date,
  sal      number(7,2),
  comm     number(7,2),
  deptno   number(2,0),
  constraint pk_emp primary key (empno),
  constraint fk_deptno foreign key (deptno) references dept (deptno)
);

这是我设法做的,但我似乎无法将其移动/写入程序。

declare
      TYPE name_array IS TABLE OF emp.ename %type
       INDEX BY BINARY_INTEGER;

      enames name_array;
    begin
      update emp set empno = empno where deptno = 20
      returning ename bulk collect into enames;
      for i in 1..enames.count loop
     dbms_output.put_line('ename : '||enames(i));
     end loop;

    end;
    /

2 个答案:

答案 0 :(得分:1)

当返回单个对象(包括值表)时,我更喜欢使用 out 参数的函数。这是实现两者的代码。

import pandas as pd 
t1=pd.DataFrame()
for i in range(len(the number of rows)):
    #add rows as columns
    t1[i]=list(rows)
t1=t1.transpose()
t1.columns=list(columns)

答案 1 :(得分:0)

这是一个存储过程示例,返回类型为Array 创建

procedure sample_proc(p_cust_id in number, p_customers out custarray)
as
my_cust custarray := custarray();