当我试图在oracle中创建新程序时..它引发了这个错误。请帮助
CREATE OR REPLACE PROCEDURE TABS_COLSE(VCOLS VARCHAR2,VTABS VARCHAR2) AS
STMT VARCHAR2(400);
TYPE VTYPES IS VARRAY(250) OF VARCHAR2(250);
RESULTS VTYPES;
BEGIN
STMT := 'SELECT '||VCOLS ||' FROM '||VTABS;
DBMS_OUTPUT.PUT_LINE(STMT);
EXECUTE IMMEDIATE STMT BULK COLLECT INTO RESULTS;
FOR J IN 1..RESULTS.COUNT() LOOP
DBMS_OUTPUT.PUT_LINE(RESULTS(J));
END LOOP;
END TABS_COLSE;
答案 0 :(得分:0)
看起来像你传递的任何东西" VTABS"在正确的架构中不存在。程序本身没有任何问题,它在我的系统上编译得很好。
注意:也许这是在您的原始代码中,或者可能是由于(多次需要)格式化编辑而无意中更改了,但是:
在FOR循环中,你现在有1..RESULTS.COUNT()
这应该是结果1和其他地方一样(" 1"在结果丢失之后)。 我无法为您编辑(编辑需要至少更改SIX字符)。