我尝试使用在包范围内定义的表类型参数调用函数,但是出现错误:
PLS-00306:调用' fun'错误的参数数量或类型。
<div class="container">
<div id="box_inside_1"></div>
<div id="box_inside_2"></div>
<div id="box_inside_3"></div>
</div>
有什么问题吗?
感谢。
答案 0 :(得分:0)
您不能在associative array
中使用SQL
(并且您不能在12c之前的Oracle版本中使用SQL
中的包规范中声明的任何数组),但您可以存储{的结果{1}}函数转换为局部变量,然后将该变量插入表fun
:
t
此外,您将函数的结果插入表PROCEDURE proc () AS
CURSOR aging_sch_cursor IS
SELECT ...
GROUP BY ...;
v_aging_sch_row aging_sch_cursor%rowtype;
v_aging_sch_table aging_sch_table_type;
v_fun number;
BEGIN
FOR v_aging_sch_row IN aging_sch_cursor LOOP
v_aging_sch_table(v_aging_sch_row.days_delq || ' ' || v_aging_sch_row.eligible).days_delq := v_aging_sch_row.days_delq;
v_aging_sch_table(v_aging_sch_row.days_delq || ' ' || v_aging_sch_row.eligible).eligible := v_aging_sch_row.eligible;
v_aging_sch_table(v_aging_sch_row.days_delq || ' ' || v_aging_sch_row.eligible).unit := v_aging_sch_row.unit;
v_aging_sch_table(v_aging_sch_row.days_delq || ' ' || v_aging_sch_row.eligible).balance := v_aging_sch_row.balance;
END LOOP;
v_fun := fun(v_aging_sch_table,0,2)
INSERT INTO t
VALUES (v_fun);
END proc;
而没有命名列 - 该表是否只有一列?如果没有,您应该为要插入数据的每一列命名,如:
t
如果你没有按字符串索引,你可以使用独立的对象类型和嵌套表,这些表可以在SQL中使用,但在你的情况下不是一个选项。