0

我需要在我的过程中使用一个动态游标,它从另一个游标接收值。当我运行这个程序时,我得到 ORA-00936 缺少表达式。我将光标中的这个选择放入 dbms_output 以查看它是否正确。

这是代码:

BEGIN
    OPEN dsa_tables;
    LOOP
        FETCH dsa_tables INTO
            v_owner,
            v_table_name,
            v_column_name,
            v_comments,
            v_tech_date;
        EXIT WHEN dsa_tables%notfound;
        v_table_all := dbms_assert.sql_object_name(v_owner
                                                   || '.'
                                                   || v_table_name);
     -- with this cursor is the problem    
        OPEN count_date FOR ' SELECT '
                            || v_column_name
                               || ','
                                  || ' COUNT('
                                     || v_column_name
                                        || ') FROM '
                                           ||v_table_all
                                           || ' GROUP BY '
                                           || v_column_name;
    LOOP
        FETCH count_date INTO
            v_date,
            v_count;
     EXIT WHEN count_date%notfound;      
            
    END LOOP;        
        CLOSE count_date; 
        
        
    END LOOP;

    CLOSE dsa_tables;
END;
/
4

2 回答 2

0

您可能已v_column_name设置为 NULL。

于 2020-06-12T09:21:30.040 回答
0

我已经检查过了,此列中没有 NULL。

于 2020-06-12T10:06:31.470 回答