我需要创建一个视图,我在这个视图中做了一个UNION ALL,但它说我没有权限。视图是这样的:
CREATE OR REPLACE VIEW exemple_view AS
SELECT 'Version', v.banner, '' as VALUE_EXEMPLE FROM v$version v
UNION ALL
SELECT 'cursor_sharing', v.value, 'EXACT' FROM v$parameter v where v.num = 1492
我已经与系统用户一起登录,因此我确定权限不是问题,并且联合工作在视图之外,权限问题只能创建视图。如果我像这样运行查询完美:
SELECT 'Version', v.banner, '' as VALUE_EXEMPLE FROM v$version v
UNION ALL
SELECT 'cursor_sharing', v.value, 'EXACT' FROM v$parameter v where v.num = 1492
错误:ORA-01031:权限不足
如果我创建这样的视图它可以正常工作。没有v $参数。
CREATE OR REPLACE VIEW exemple_view AS
SELECT * FROM (
SELECT 'Version', v.banner, '' as VALUE_EXEMPLE FROM v$version v
UNION ALL
SELECT 'Version', v.banner, '' as VALUE_EXEMPLE FROM v$version v
) t
有什么想法吗? 谢谢!
答案 0 :(得分:0)
您无权从 v$parameter
中选择。
它给了我另一种错误,抱怨第一列没有指定列名:ORA-00998: must name this expression with a column alias
尝试给它一个:
CREATE OR REPLACE VIEW exemple_view AS
SELECT 'Version' AS "Version", v.banner, '' as VALUE_EXEMPLE FROM v$version v
UNION ALL
SELECT 'cursor_sharing', p.value, 'EXACT' FROM v$parameter p where p.num = 1492;