永久更新 NLS_SESSION_PARAMETERS 表值

问题描述 投票:0回答:2

我想永久更新

NLS_SESSION_PARAMETERS
表的所有字段。我已尝试更新操作,但出现以下错误:

Error report -
SQL Error: ORA-02030: can only select from fixed tables/views
02030. 00000 -  "can only select from fixed tables/views"
*Cause:    An attempt is being made to perform an operation other than
           a retrieval from a fixed table/view.
*Action:   You may only select rows from fixed tables/views.

任何人都可以帮助我了解如何更改/更新

NLS_SESSION_PARAMETERS
表的参数值。

sql oracle oracle-sqldeveloper database-administration
2个回答
0
投票

您只能更改会话设置参数=值。这不是永久性的,但仅适用于该数据库会话,不会影响其他数据库会话。也许您应该在连接到数据库后立即使用脚本或存储过程根据需要设置参数。 请参阅https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-SESSION.html


0
投票
  1. NLS_SESSION_PARAMETERS
    是字典视图。所有字典视图和表格都将通过 DDL(
    CREATE, ALTER, DROP
    等)进行管理,而不是通过您自己的手动插入/更新/删除。

  2. 您可以使用

    ALTER SESSION
    更改的任何参数,您也可以使用
    ALTER SYSTEM
    进行更改,这使得它适用于数据库的所有用户,因此将保留在您的连接中,但这是只有 DBA 才能做的事情。但是,要使其在数据库实例重新启动时永久存在,您必须将其放入初始化文件 (
    $ORACLE_HOME/rdbms/init$SID.ora
    ),或者如果正在使用 SPFILE,请将“
    scope=BOTH
    ”或“
    scope=SPFILE
    ”添加到
    ALTER SYSTEM
    命令。同样,这仅适用于 DBA。

  3. 如果您不能使用

    ALTER SYSTEM
    在实例级别更改它,那么您有几个选择:

    3.1 在

    你建立的每一个连接上做
    ALTER SESSION

    3.2 创建一个 private logon trigger 为你做

    ALTER SESSION
    s

    3.3 在登录时调用 procedure 为您执行

    ALTER SESSION
    s

    3.4 最后,如果您只想更改您的语言区域和/或字符集,您可以在您的操作系统上设置 host 环境变量

    NLS_LANG
    。您的客户将继承这些值并为您设置
    NLS_LANGUAGE
    。可以通过这种方式设置其他几个 NLS 参数。请参阅有关“设置 NLS 环境

    的文档
© www.soinside.com 2019 - 2024. All rights reserved.