栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用sql / plsql,如何找出文本使用的字符集?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用sql / plsql,如何找出文本使用的字符集?

Oracle全球化开发套件可以检测字符集。

GDK包含在Oracle中,但默认情况下未安装在数据库中。要将.jar文件加载到数据库中,请在Oracle主页中找到jlib目录,然后运行以下操作系统命令:

loadjava -u USER_NAME@SID orai18n.jar orai18n-collation.jar orai18n-lcsd.jar orai18n-mapping.jar orai18n-net.jar orai18n-servlet.jar orai18n-tools.jar orai18n-translation.jar orai18n-utility.jar

即使您的用户具有DBA,也需要一些额外的Java特权。运行此命令,然后重新连接:

exec dbms_java.grant_permission( 'YOUR_USER_NAME', 'SYS:java.lang.RuntimePermission', 'getClassLoader', '' );

创建一个Java类进行检测。下面是一个非常简单的示例,该示例返回字符串的最佳猜测:

create or replace and compile java source named "Character_Set_Detector"asimport oracle.i18n.lcsd.*;import java.sql.*;import java.io.IOException;public class Character_Set_Detector{    public static String detect(Blob some_blob) throws SQLException, IOException    {        LCSDetector detector = new LCSDetector();        detector.detect(some_blob.getBinaryStream());        LCSDResultSet detector_results = detector.getResult();        return detector_results.getORACharacterSet();    }}/

将Java类包装在PL / SQL函数中:

--Wrap the Java class in a PL/SQL function:create or replace function detect_character_set(some_blob blob)return varchar2as language javaname 'Character_Set_Detector.detect(java.sql.Blob) return java.lang.String';/

我通过将字符串翻译成不同的语言,使用文本编辑器将文本保存为不同的编码,使用十六进制编辑器打开文件并将十六进制转换为BLOB来模拟不同的字符集:

--UTF8--The quick brown fox jumps over the lazy dogselect 1 id, detect_character_set(hextoraw('54686520717569636b2062726f776e20666f78206a756d7073206f76657220746865206c617a7920646f67')) character_set from dual union all--Western European (ISO-8859-1)--El zorro marr贸n r谩pido salta sobre el perro perezososelect 2 id, detect_character_set(hextoraw('456c207a6f72726f206d617272f36e2072e17069646f2073616c746120736f62726520656c20706572726f20706572657a6f736f')) from dual union all--Chinese Simplified (GBK)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号