Oracle 动态游标 - ORA-00936 缺少表达式
Oracle Dynamic Cursor - ORA-00936 missing expression
我需要在我的过程中使用动态游标,它从另一个游标接收值。
当我 运行 这个程序时,我得到了 ORA-00936 缺失表达式。
我将光标中的 select 放入 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;
/
您可能已将 v_column_name
设置为 NULL。
我已经查过了,这个栏目没有NULL。
我需要在我的过程中使用动态游标,它从另一个游标接收值。 当我 运行 这个程序时,我得到了 ORA-00936 缺失表达式。 我将光标中的 select 放入 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;
/
您可能已将 v_column_name
设置为 NULL。
我已经查过了,这个栏目没有NULL。