ZHS16GBK字符集插入中文时报错ORA-01756

插入数据时遇到一个奇怪的问题,插入中文报错ORA-01756: quoted string not properly terminated

简单的复现测试如下:

查看客户端及数据库字符集

可以看到字符集是一样的,如果不同,设置客户端字符集与数据库端相同再测试

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

找了网上好多文章都是说设置客户端字符集与数据库端相同就ok,但我们的还是有问题。

最后发现是secureCRT客户端字符集的问题,设置是UTF-8,导致ZHS16GBK无法识别。

需要调整secureCRT客户端字符集为gb2312

从别的客户端查询

 

补充一种网上看到的错误做法

文章的建议是设置客户端字符集为 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

经过测试这样插入时不会报错(因为AL32UTF8能识别到secureCRT客户端字符集UTF8),在插入的客户端查询数据也正常,但是通过别的字符集为ZHS16GBK的客户端来查就会出现乱码(例如???)。

其实dump数据时也遇到过ZHS16GBK -> AL32UTF8 中文能正常显示,但是 AL32UTF8 -> ZHS16GBK 中文会变为乱码,原理是一样的。

这只会导致问题更加难以发现,后期排查处理更麻烦。

热门文章

暂无图片
编程学习 ·

后台开发核心技术(11):多线程

背景介绍 进程:以前,进程是最小的执行单位。进程是包含程序指令和相关资源的集合,每个进程和其他进程一起参与调度,竞争CPU、内存等资源。每次进程的切换,都存在着进程资源的保存和恢复动作,这称为上下文切换。 发现问题:比如一个简单的GUI程序,为了有更好的交互性,通…
暂无图片
编程学习 ·

关于table中合并单元格的一些问题

关于table中合并单元格的一些问题 首先要明白列表中定义tr为一行,td为一行中的单元格,也就是列的数量。所以在合并行(rowspan)时,得到的是新的一列。代码运行结果如下。<tr><td></td><td></td><td rowspan="3"></td>…
暂无图片
编程学习 ·

java学习基础:Math类

记录学习java路程将与风雨相伴!!! Math类(数学类) 算术计算 Math.sqrt():计算平方根 Math.cbrt():计算立方根 Math.pow(a,b):计算a的b次方 Math.max(,):计算最大值 Math.min(,):计算最小值 Math.abs():取绝对值 进位 Math.ceil():天花板的意思,就…
暂无图片
编程学习 ·

HCIP-RS-H12-221题库以及解析(部分)

不定期更新题库和解析,原题库不包含解析,解析有错误或不对的地方欢迎评论指正 1.由于属性AS-path不能在AS内起作用,所以规定BGP路由器不会宣告任何从IBGP对等体来的更新信息给其对等体 (√) 2.通过重发布命令注入BGP的路由,其orgin的属性为incomplete (√) 3.自制系统…
暂无图片
编程学习 ·

Python——走马灯

走马灯 def f():import times=人生苦短,我学Pythonc=0while True:print(s)time.sleep(0.3)#休眠0.3秒。每隔0.3秒,即300毫秒显示一行代码s=s[1:]+s[0]c+= 1if c==2*len(s):break f()输出结果 人生苦短,我学Python 生苦短,我学Python人 苦短,我学Python人生 短,我学Python…
暂无图片
编程学习 ·

App测试中IOS和安卓测试的区别

一、分辨率的测试 安卓端有20多种,IOS相对就比较少一些 二、操作系统的版本 安卓的操作系统比较多,IOS比较少,而且它只能支持单项升级,不能支持降级。 三、操作习惯的一些不同 安卓习惯点击BACK键,所以我们要测试一下BACK键,看看BACK键是否被重写了。点击BACK键之后,看看…
暂无图片
编程学习 ·

华为 openGauss数据库社区 openGauss数据库源代码

2020年7月1日,华为正式宣布开源数据库能力,开放openGauss数据库源代码, 并成立openGauss开源社区, 社区官网(http://opengauss.org)同步上线。关于openGaussopenGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核源自PostgreSQL,深度融合华为在…
暂无图片
编程学习 ·

数据结构之查找(期末复习)

【知识框架】一、查找的基本概念 1、查找表 查找表是由同一类的数据元素(或记录)构成的集合。集合中的数据元素之间存在着完全松散的关系,因此查找表是一种非常灵便的数据结构。 2、关键字 关键字是数据结构(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)…
暂无图片
编程学习 ·

iOS开发笔记之八十——单例的使用笔记

******阅读完此文,大概需要10分钟******一、单例的创建#import "MDInstanceManager.h"@implementation MDInstanceManagerstatic MDInstanceManager *shareInstance = nil; static dispatch_once_t onceToken;+ (instancetype)shareInstance {dispatch_once(&on…
暂无图片
编程学习 ·

Docker 安装 kafka

1.下载镜像 a) 下载 zookeeper docker pull wurstmeister/zookeeperb) 下载 kafka docker pull wurstmeister/kafka:2.11-0.11.0.32.启动镜像 a) 启动zookeeper docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zook…
暂无图片
编程学习 ·

C语言复习笔记

C语言复习笔记 仅记录复习过程中的混淆和记忆模糊的知识点。 1、常量-八进制整数 在C语言中,如果一个整数是以 0 开头的,那么这个数是以八进制来表示的,即八进制整数。0x为十六进制整数。 2、 一个整数,例如1500,为 int 类型(21亿),如果是 1500L,则表示长整型,1500U …
暂无图片
编程学习 ·

Java数据类型

数据类型 Java属于一种强类型语言 什么是强类型语言? 即要求变量的使用需要严格符合规定,要求所有变量都必须先定义后再使用,若不按规定就会报错! Java的数据类型分为两类 基本类型(primitive type) Java语言提供了八种基本类型:六种数字类型(四个整数型,两个浮点型),…
暂无图片
编程学习 ·

【leetcode C语言实现】剑指 Offer 07.重建二叉树

题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树:限制: 0 <= 节点个数 <= 5000 来源:…
暂无图片
编程学习 ·

Java数据结构--循环链表

一、简介 1.1 概念对于单链表而言,最后一个结点的地址为空,如果表示最后一个结点的指针域指向头结点,整个链表形成一个环,就构成了单循环链表。 与单链表相比,只是将原来判断指针是否为空变为判断是否是头指针,没有其他的变化。 访问单循环链表某一结点,可以从任何一个结…
暂无图片
编程学习 ·

Leetcode 题解 - 双指针

双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。 有序数组的 Two Sum Leetcode :167. Two Sum II - Input array is sorted (Easy) Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2题目描述:在有序数组中找出两个数,使它们的和为…
暂无图片
编程学习 ·

tensorflow-serving布置facenet心得

这个的东西困扰我很久,终于弄成了。不知道我做的是不是太繁琐,如果有人做的更简单,希望指出,谢谢。docker中,做了两个容器,一个放的mtcnn,一个放的facent。他们并不是多模型布置的。mtcnn其中包括:pnet,rnet和onet,这三个是多模型布置。客户端通过调用mtcnn,得到返回…
暂无图片
编程学习 ·

阿里云学生机选择指南(用途和优势)

概述 现在国内知名大牌云服务商(阿里云)对学生都是很优惠的,阿里云学生服务器,阿里云也推出了9.5元购买云服务器的优惠活动,是一款固定的优惠套餐,包含特价云服务器,但是好多学生却不知道在哪里申请,需要什么条件,流程是怎么样的,下面给大家做个介绍 云翼计划是阿里云…