我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

用户自定义字的存储问题

上一篇 / 下一篇  2007-02-07 00:00:00 / 个人分类:ORACLE

今天帮一个朋友看了一下Oracle中处理用户自定义字的存储问题。


[ c~jM6JKn7590422

我的测试是利用windows自带的TrueType造字程序进行的,自己随便写了个字,字的代码为AAA1,然后将其与所有的字体文件进行关联。为了可以方便的输入,与全拼输入法进行了关联。

然后这个字就可以在我的机器上正确显示了。

自定义字

其实Oracle数据库在这里起的作用只是一个存储的作用,显示问题是客户端程序完成的。

即使TELNET登陆到其他数据库服务器,执行select chr(43681) from dual,也可以正确的显示这个字符。而其他的机器,即使访问我的数据库也无法显示这个字。

突然想到,这种方式也可以作为一种客户端本身的加密方式。只有设置了造字字体的客户端可以正确的显示,而对于其他的客户端,甚至是服务器本身,所有的数据都是没有任何意义的。

上面的测试使用了ChineseGBK字符集,如果换成Unicode字符集,则无法在sqlplus中正常显示。怀疑问题可能是两点造成的,一是sqlplus并不支持Unicode的显示,二是UnicodeAL16UTF16的转换有问题。

这个情况,最好采用RAW/BLOB类型替代VARCHAR2/CLOB类型。保证二进制数据的正确存储,而将数据的展示完全交给应用程序。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar