【问题标题】:(Error): ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist ORA-06512(错误):ORA-00604:递归 SQL 级别 1 发生错误 ORA-00942:表或视图不存在 ORA-06512
【发布时间】:2016-04-02 11:25:58
【问题描述】:

当我尝试在 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;

【问题讨论】:

  • 您在创建过程时是否收到此错误?不是在你调用它的时候,而是在它创建之后?

标签: oracle oracle11g oracle10g oracle-sqldeveloper


【解决方案1】:

似乎您传入的任何“VTABS”都不存在于正确的架构中。程序本身没有问题,它在我的系统上编译得很好。

注意:也许这是在您的原始代码中,或者它可能因(非常需要)格式编辑而被无意更改,但是:

在 FOR 循环中,您现在有 1..RESULTS.COUNT()

与其他任何地方一样,这应该是 RESULTS1(缺少 RESULTS 后的“1”)。 我无法为您编辑(编辑至少需要更改六个字符)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2019-05-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多