我想创建一个简单的过程,列出系统中的所有物化视图,并以表格格式打印这些视图的状态。
当我执行下面的程序时,它给我错误:
PLS-00103:在预期以下内容之一时遇到符号“CREATE”:(开始大小写声明结束异常退出用于后藤if循环mod空杂注引发返回选择更新同时使用〈〈继续关闭当前删除获取锁插入打开回滚保存点设置sql执行提交用于所有合并管道清除
代码:
创建或替换过程mview_status(
状态输出VARCHAR 2,
视图名称输出VARCHAR 2
)
开始
-- Create a temporary table to hold the results
CREATE TABLE mview_bkp
(
view_name VARCHAR(255),
status VARCHAR(30)
); -- Insert data into the temporary table by querying the all_mviews view
INSERT INTO mview_bkp
SELECT
mview_name,
compile_state
FROM sys.all_mviews; -- Print the results in a table format
SELECT
view_name,
IF compile_state = 'VALID' THEN status := 'Valid';
ELSE status := 'Invalid';
END IF;
FROM mview_bkp; -- Drop the temporary table
DROP TABLE mview_bkp; END;
关于如何解决上述错误有任何帮助吗?TIA
1条答案
按热度按时间c3frrgcw1#
这至少是一种有效的语法,但输出可能并不美观(我假设名称不超过30个字符的MV--如果启用了扩展标识符,这可能不是一个有效的假设)如果您希望通过
SQL*Plus
或其他IDE交互式地运行,假设您启用了dbms_output
,这可能就足够了,但是如果您试图将信息返回给客户端应用程序,则不适合。