【问题标题】:Cannot find table v$parameter in Oracle在 Oracle 中找不到表 v$parameter
【发布时间】:2013-02-17 18:44:48
【问题描述】:

我想使用 SQL 查询获取 Oracle 中的会话数:

SELECT value FROM v$parameter WHERE name = 'sessions'

但我收到此错误:

Error starting at line 1 in command:
SELECT value FROM v$parameter WHERE name = 'sessions'
Error at Command Line:1 Column:18
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

也许我使用的 Oracle 用户没有特权?

【问题讨论】:

标签: sql oracle oracle11g


【解决方案1】:

通常,更好的方法是使用一个过程并授予该过程必要的权限。但是,如果您想直接使用 SQL,您可以将SELECT_CATALOG_ROLESELECT ANY DICTIONARY 授予用户。

【讨论】:

    【解决方案2】:

    大概吧。要授予权限,您需要使用表名V_$PARAMETER。它来自于授予动态视图权限时的一些限制。

    【讨论】:

    • 我按照您的建议更改了表的名称,但我再次收到相同的错误消息。
    • @PeterPenzov:您不需要更改名称,您需要授予 plouf 提到的桌子上的权限。
    • 这样做的正确方法是什么?
    • @PeterPenzov 您将运行为 sys,grant select on v_$parameter to youruser; 其中youruser 是您尝试运行选择的用户的名称。
    【解决方案3】:

    使用权限:-选择任何表更改任何表在 Oracle 12c 中使用 SYSDBA 以 SYS 身份运行授权时为我解决了这个问题。

    【讨论】:

    • 这很危险,因为它提供的超出了必要的范围。
    猜你喜欢
    • 2021-09-21
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2020-12-07
    • 2019-01-27
    相关资源
    最近更新 更多