【发布时间】:2023-03-27 15:14:01
【问题描述】:
我在存储过程中有一个 select 语句,我想将它取出并放入一个视图中。 select 语句从 dba_tables、dba_tab_partitions 和 dba_tab_subpartitions 中提取。
如果我自己运行该语句,它可以正常工作。如果我将它包装在创建视图语句中:
CREATE OR REPLACE VIEW "MYSCHEMA"."V_XWMS_TEST"
(
"OWNER"
,"SEGMENT_NAME"
,"PARTITION_NAME"
,"SEGMENT_TYPE"
,"TABLESPACE_NAME"
)
AS
SELECT "OWNER"
,"SEGMENT_NAME"
,"PARTITION_NAME"
,"SEGMENT_TYPE"
,"TABLESPACE_NAME"
FROM
[Original query]
然后根据我登录的用户,我得到 ORA-01031:权限不足或 ORA-00942:表或视图不存在。同样,对于两个用户,我都可以创建视图,并且可以运行这个 select 语句,但是我不能在创建视图的上下文中运行 select 语句。
【问题讨论】:
-
您的用户是否有权读取该视图中包含的所有表?
-
是的 - 两个用户都可以自己运行 select 语句并获得预期的结果。
标签: oracle