无法使用v $参数创建视图

时间:2015-03-26 14:58:15

标签: sql oracle sql-view

我需要创建一个视图,我在这个视图中做了一个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

有什么想法吗? 谢谢!

1 个答案:

答案 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;