楼主: yyy

[精华] Java过程修改dump文件成特定字符集

[复制链接]
论坛徽章:
0
21#
发表于 2002-8-17 00:20 | 只看该作者
小弟愚钝, 请问这么伟大的工程oracle怎么不干呢?
是否开个title将此问题了结下,差不多是top 10了

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
22#
发表于 2002-8-18 23:12 | 只看该作者
因为这种修改dmp方法,实际是欺骗oracle的检查机制,让oracle把dmp文件当成是新字符集的文件,oracle自己当然不会干这种事,只有我们来代劳了。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
23#
发表于 2002-8-19 16:43 | 只看该作者
最初由 bluekey 发布
[B]因为这种修改dmp方法,实际是欺骗oracle的检查机制,让oracle把dmp文件当成是新字符集的文件,oracle自己当然不会干这种事,只有我们来代劳了。 [/B]

如果实现的话,oracle 不是能跨“字符集”了,功能不是更强大了嘛:))

使用道具 举报

回复
论坛徽章:
7
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:牛
日期:2008-05-06 11:05:47CTO参与奖
日期:2009-02-20 09:44:20ITPUB8周年纪念徽章
日期:2009-09-27 10:21:22
24#
发表于 2002-8-21 20:37 | 只看该作者

求救!?

前面帖子里的字符集转换工具到底怎么用啊?
比如说我现在是标准的字符集zhs16gbk
但我有一个dmp备份文件是zhs16cgb231280字符集的
我想用我的数据库导入。
用工具转换时是不是能可以实现原来zhs16cgb231280字符集转为zhs16gbk
我可以导入?
我现在好像不行耶?

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
25#
发表于 2002-8-22 08:50 | 只看该作者

Re: 求救!?

最初由 ufsoftlearner 发布
[B]前面帖子里的字符集转换工具到底怎么用啊?
比如说我现在是标准的字符集zhs16gbk
但我有一个dmp备份文件是zhs16cgb231280字符集的
我想用我的数据库导入。
用工具转换时是不是能可以实现原来zhs16cgb231280字符集转为zhs16gbk
我可以导入?
我现在好像不行耶? [/B]


这两种中文字符集可以互相exp/imp.只需注意源会话和目标会话的字符集一定要相等。

使用道具 举报

回复
论坛徽章:
4
会员2006贡献徽章
日期:2006-04-17 13:46:342009新春纪念徽章
日期:2009-01-04 14:52:28
26#
发表于 2002-8-27 11:25 | 只看该作者
good

使用道具 举报

回复
论坛徽章:
2
27#
发表于 2002-8-27 14:59 | 只看该作者

Win2k Server+Oracle815

运行C:\>loadjava -user test/test@dbora -r -f -v F:\DumpChange.java
这一行时出了错,不知什么原因:现贴出错误信息,请大侠帮着看一下

C:\>loadjava -user test/test@dbora -r -f -v f:\DumpChange.java
internal error: unanticipated exception: java.lang.NoClassDefFoundError: oracle/
aurora/sqljdecl/SqljDecl
java.lang.NoClassDefFoundError: oracle/aurora/sqljdecl/SqljDecl
        at oracle.aurora.server.tools.SourceFileReader.getScanner(SourceFileRead
er.java:52)
        at oracle.aurora.server.tools.SourceFileReader.getFirstName(SourceFileRe
ader.java:61)
        at oracle.aurora.server.tools.LoadJava.processLoadAndCreate(LoadJava.jav
a:1094)
        at oracle.aurora.server.tools.LoadJava.process(LoadJava.java:1021)
        at oracle.aurora.server.tools.LoadJavaMain.run(LoadJavaMain.java:193)
        at oracle.aurora.server.tools.LoadJavaMain.main(LoadJavaMain.java:49)
resolver :
loadjava: 1 errors

使用道具 举报

回复
论坛徽章:
2
ITPUB元老
日期:2005-03-02 12:45:52授权会员
日期:2005-10-30 17:05:33
28#
发表于 2002-8-28 19:14 | 只看该作者
jxc_hn , 可否把你的C 程序源码贴上来看看?
我还不太清楚修改的原理是怎么回事.

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
29#
发表于 2002-9-6 17:42 | 只看该作者
--为何在 loadjava 时会报错?需要安装什么?
--OS:  Windows2000 Professional
--DB:  Oracle8.1.6
--C:\>loadjava -user scott/tiger@U16 -r -f -v c:\DumpChange.java
--initialization complete
--loading  : DumpChange
--creating : DumpChange
--Error while creating DumpChange
--    ORA-29547: Java 系统类不可用: oracle/aurora/rdbms/Compiler
--
--resolver :
--Error while resolving class DumpChange
--    ORA-29540: 类oracle/aurora/rdbms/DbmsJava不存在
--
--loadjava: 2 errors

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
30#
发表于 2002-12-14 10:16 | 只看该作者

强烈要求置顶

不管怎么样,还是要先理解Oracle字符集合的原理,至于工具吗
对于程序员,在任何情况下都不是问题,我想拿一个简单的dmp文件
来说明dmp的结构,使用system将用户scott导出,如果用WinHex打开
dmp文件,可以看到第2,3字节为0354=852
select nls_charst_name(852) from dual 可以看到所对应的字符集合
我们在看看oracle 的exp 工具都做了什么,拖动Winhex的窗口,我门在ASCII拦中间会突然看到熟悉的代码Create table ........Insert Into Dep t.....,,到此我终于对oracle的字符集合大彻大悟了exp 工具导出的文件是采用Sql语句的方式,如果是oracle数据库里面能正常显示和插入中文,那么该oracle导出的dmp文件一定包含Insert into Dept  values ( ' 例子')......等等类试的信息,对于原来字符集合是us7ascii 的oracle, 除了第2,3字节不是0354以外,后面的信息都差不多,但是有个前提,在us7ascii中要能正常的显示和插入汉字所以使用Winhex将前面2,3字节改为0354既能将us7ascii 的exp的dmp正确导入oracle 817 ZHS16GBK,这也不是欺骗oracle,只是告诉oracle正确的字符集合,正常的情况的下oracle817的翻译是中文翻译(zhs16gbk),如果你导出的dmp中2,3字节请的不是中文翻译( 不等于0354) ,那么oracle 自然会请一个与你的dmp相同翻译去翻译,自然会出现乱码问题,一点不奇怪,明白这个道理,我想是不会在碰到字符集合的导入导出问题了,可怜的motopzax,这是我重复试了n次才得到的经验,希望对大家有所帮住。还有楼上的实际java上传个852 ,然后直接seek(1)
最后在writeShortInt(852)即可以了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表