Oracle 12C 修改 NLS_NCHAR_CHARACTERSET 的值

2023-10-19 11:08

本文主要是介绍Oracle 12C 修改 NLS_NCHAR_CHARACTERSET 的值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明:本例使用的数据库为新建数据库,没有数据。
注意:若数据库内有重要数据,建议在操作前做好备份工作。

修改原因:

报错:ORA-00910: specified length too long for its datatype

经查看是NLS_NCHAR_CHARACTERSET的配置有问题,应该为AL32UTF8

select value from nls_database_parameters t where t.PARAMETER ='NLS_NCHAR_CHARACTERSET'

在这里插入图片描述

修改步骤:

(此处记录的是实际操作情况,之所以把失败的情况也展示出来,是为了提供给大家一个排错思路。)

尝试修改

SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8
*
ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode

出现该错误,是由于当前没有处于 RESTRICTED 模式

修改为 RESTRICTED 模式

SQL> alter system enable restricted session;System altered.

再次尝试

SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8
*
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active

出现该错误是因为除了当前连接,还有其他连接

断开其他连接后,再次修改

SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;Database altered.

修改成功!

取消RESTRICTED模式

SQL> alter system disable restricted session;System altered.

查询是否生效

select value from nls_database_parameters t where t.PARAMETER ='NLS_NCHAR_CHARACTERSET'

在这里插入图片描述

select * from v$nls_parameters

在这里插入图片描述

为验证本次修改的时效性,现重启数据库,再次查看是字符集配置情况:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.Total System Global Area 1.6267E+11 bytes
Fixed Size                  7653480 bytes
Variable Size            2.4159E+10 bytes
Database Buffers         1.3798E+11 bytes
Redo Buffers              529215488 bytes
Database mounted.
Database opened.

再次查看发现字符集的配置依然是对的

本次修改完成!

这篇关于Oracle 12C 修改 NLS_NCHAR_CHARACTERSET 的值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239361

相关文章

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数