我正在Oracle Form中创建一个过程,该过程调用一个插入表(解决方案表)的回溯。该回溯由ítems(豆类)的varray(ítem_array)提供。问题是编译器说没有函数名称temtem。
数据库中的现有对象:
CREATE TYPE item IS object( NUM_OPERACIO NUMBER, TITULS NUMBER);
CREATE TYPE item_array IS VARRAY(1000) OF item;
create table my_table (NUM_OPERACIO NUMBER, TITULS NUMBER);
insert into my_table ( NUM_OPERACIO,TITULS ) values (1,10);
insert into my_table ( NUM_OPERACIO,TITULS ) values (2,20)
insert into my_table ( NUM_OPERACIO,TITULS ) values (3,30)
程序
PROCEDURE solver
IS
arr item_array;
BEGIN
SELECT item( NUM_OPERACIO,TITULS )
BULK COLLECT INTO arr
FROM my_table;
delete from solucion ;
backtra(arr,1,0,30);
END;
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
这是一个PLS错误号。来自the documentation:
" PLS-00591:客户端程序中不支持此功能
原因:在错误的上下文中使用了以下功能之一:pragma AUTONOMOUS_TRANSACTION,动态SQL语句(例如,EXECUTE IMMEDIATE)和批量绑定。这些列出的功能只能用于服务器端程序,而不能用于客户端程序。"
您的代码使用批量绑定,因此错误适合。表单PL / SQL和数据库PL / SQL类似,但它们使用不同的引擎,两者都支持的功能只是两者中所有功能的子集。解决方案是将数组填充传递到数据库过程并根据需要从Forms调用它。
如果不确切地知道您尝试解决的问题,那么提供更好的答案就更难了。