暂无图片
oracle如何插入特殊符号
我来答
分享
ora_hub
2022-10-28
oracle如何插入特殊符号

select '†',ascii('†'),dump('†') from dual

请教下这种十字架的特殊符号怎么插入到表里面啊

有2个库,一个AL32UTF8 一个ZHS16GBK



我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
DarkAthena

1.如果数据库是AL32UTF8,那么客户端环境变量也要设置成AL32UTF8
NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8
2.如果数据库是ZHS16GBK,那么这个字符只能存进NVARCHAR2类型的字段中了,否则就只能转换成其他码点来进行存储,比如应用转换成unicode编码,再存进来

这篇文章最后面刚好有类似的场景
https://www.modb.pro/db/530818

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
StoneDB
2022-10-28
不错
PiscesCanon
2022-11-01
还是要说清楚的吧,这个看了会让人觉得NLS_LANG就要和数据库字符集一样的设置。 而且提问里边只说了有2个库,一个AL32UTF8 一个ZHS16GBK,没说客户端字符集。 好像PLSQLDEV这个工具是有自己的字符集的吧。 另外你说的这个方法,你试试对windows上边的sqlplus客户端是有问题的,某些特殊字符在通过sqlplus服务器送进去数据库的时候已经丢失了编码信息(无论NLS_LANG怎么设置),因为windows console的界面936字符集不支持某些特殊字符。 如果是服务器上sqlplus,一般服务器OS的字符集是UTF8那就没问题,此时NLS_LANG设置为AMERICAN_AMERICA.AL32UTF8。 https://www.cnblogs.com/PiscesCanon/p/15157506.html
DarkAthena
答主
2022-11-01
回答是为了解决题主的问题,题主问的是两个字符集的库怎么存这个特殊符号,所以回答就分了两种场景,AL32UTF8时怎么存,ZHS16GBK怎么存。另外PLSQLDEV使用的字符集就是操作系统环境变量NLS_LANG中设置的,从题主的截图来看,这个符号被识别成了问号,所以很明显此时客户端的字符集并不支持这个符号。而且题主通过其他渠道进行了咨询,测试过chr(14844064)能正确返回这个字符,因此可以确定题主的数据库字符集为AL32UTF8,是支持这个字符的,只是因为客户端字符集不支持这个字符导致的问题
展开全部评论(5条)
ora_hub

select '†这个特殊的字符剑号怎么入库' from dual

是一段文字中有这个符号,不单单是一个符号,疾病目录里面

暂无图片 评论
暂无图片 有用 0
打赏 0
Uncopyrightable


暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-10-28
谢谢
PiscesCanon

采纳的答案有个地方误人子弟,NLS_LANG的设置跟数据库字符集没任何关系。

这年头还是有人搞不清楚。

暂无图片 评论
暂无图片 有用 0
打赏 0
DarkAthena
2022-11-01
因为该题主数据库字符集是UTF8,客户端字符集是GBK,插入GBK字符到数据库中是没问题的,但不能插入非GBK字符集到数据库中,所以客户端字符集要设置成UTF8。也就是说,数据库字符集是UTF8,是插入这个字符的前提条件之一
DarkAthena
2022-11-01
具体分析可以看我这篇文章 https://www.modb.pro/db/240291
PiscesCanon




暂无图片 评论
暂无图片 有用 0
打赏 0
DarkAthena

image.png

074bda7302a08914c1e4933d68d232e.png
4130cecc54299e86231ae6a6c1b77a5.png
image.png
838a4a597b93958cf1755950fd36c8e.png
image.png

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
asm 双存储,当san 网络故障,如何确定存活磁盘组?
回答 7
根据,提供的ppt,显示,这种情况不会产生节点驱逐的。
使用墨天轮的AWR分析模块,如何分析11.2.0.1.0版本数据库的AWR
回答 1
确实不支持,你可以将AWR以附件的方式传到这里,我们人工帮你分下。
如果要动态修改LOG_BUFFER参数,应该怎么做?
回答 1
已采纳
PostgreSQL中的参数可以分为动态参数和静态参数。动态参数可以在运行时通过SET命令修改,而静态参数则需要修改配置文件并重启数据库才能生效。例如,sharedbuffers是一个静态参数,修改后
如何将dg库变成单库,主备分离?
回答 2
我的理解是将ADG备库拉成可读可写的一个实例,和原来的主库没有关系对吧。那么,如下SQL则就可以做到。https://mp.weixin.qq.com/s/y45wtWdXEc0ocNu42MFmpA
原来在 Oracle 19c 执行是没有问题,在做表迁移时,数据为11G , 就报错了, 需要添加这个关键字,语法应该怎么处理?
回答 1
随便怎么处理都行
oracle 12c 安装完, 登陆报监听错误, 登录不了
回答 1
请贴什么错误。这样一句没人知道怎么处理
Oracle 19.8rman备份能恢复到19.3上吗?
回答 2
官方指导在不同版本的补丁之间是可以rman恢复的,恢复完之后1、alterdatabaseopenresetlogsdowngrade;2、执行补丁里面的uninstall/downgrade脚本不过
rehl8 安装 19c
回答 2
md5校验一下安装包。
Oracle table analyed时间突然变得特别长,可能是什么原因?
回答 1
已采纳
可能的原因:1.系统资源不足,如cpu/内存等2.锁3.表数据量突然变大4.长时间未分析5.空块过多
crs集群alert日志报错
回答 5
那参加节点2改回来吧,历史日志文件可以不管了
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~