楼主: linwz

怎么将字符集为US7ASCII的库中导出的数据导入到字符集为ZHS16GBK的库中?

[复制链接]
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
51#
发表于 2003-4-14 17:14 | 只看该作者
我使用LINWZ传送上来的文件做的测试!
不知道是不是这个原因。
你可下载该文件来做一下测试,看看是都和我相同的结果
(在第3页)

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2005-11-07 17:06:46铁扇公主
日期:2006-04-12 17:42:13红孩儿
日期:2006-04-13 08:43:44嫦娥
日期:2006-04-13 08:43:54玉兔
日期:2006-04-13 08:44:02九尾狐狸
日期:2006-04-13 08:44:12会员2006贡献徽章
日期:2006-04-17 13:46:34生肖徽章2007版:虎
日期:2009-04-21 21:32:53
52#
发表于 2003-4-14 17:43 | 只看该作者
回zalbb,我试过了,导入不了数据库,出错信息见我前面的帖子,我基本敢肯定不是bin方式ftp下来的。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
53#
发表于 2003-4-14 17:50 | 只看该作者
我不是和你说吗,把test_us7ascii.dmp文件中的第二,第三个字节
改为03 54(原来为00 01,用ultraEdit工具打开),

就可以导入了。

再试试!

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2005-11-07 17:06:46铁扇公主
日期:2006-04-12 17:42:13红孩儿
日期:2006-04-13 08:43:44嫦娥
日期:2006-04-13 08:43:54玉兔
日期:2006-04-13 08:44:02九尾狐狸
日期:2006-04-13 08:44:12会员2006贡献徽章
日期:2006-04-17 13:46:34生肖徽章2007版:虎
日期:2009-04-21 21:32:53
54#
发表于 2003-4-14 18:16 | 只看该作者
这点我当然知道了,呵呵,可改过后导入就出错。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
55#
发表于 2003-4-15 09:40 | 只看该作者
我导入没错误!但就是看不到正确的汉字。
不清楚是哪里出错了。
改天有环境,自己再试试

对了,你要注意,该DMP文件是921版本导出来的,
817版本步认!

使用道具 举报

回复
论坛徽章:
0
56#
 楼主| 发表于 2003-4-15 10:07 | 只看该作者
感谢大家的关注,有一点大家一定要注意,就是我的两个数据库都是在同一台机子上,也就是说,我的机子上同时跑了两个数据库,一个是ZHS16GBK的,一个是US7ASCII码的。
我的导出文件跟本就没有用FTP传过,是直接从US7ASCII库中分别将本机的NLS_LANG设为US7ASCII和ZHS16GBK后导出的,然后,又分别在这种前端字符集下将两个导出文件导入到ZHS16GBK的库中,但是这四次导入后,汉字都不能正常显示。

我已试过改ZHS16GBK库的字符集,但没有成功,我的库现在还不能Startup,这一点前面已描述过了,ZALBB测试过改导出文件的字符集,好像也没能成功。

不知道哪位大哥能不能解释一下原因,另外,还有没有其它的方法可以试试的。

我的导出的两个文件已在前面传上来了,所有的环境及测试数据前面都说过了。我是WINRAR压缩之后传的,传的过程应该也不会有问题的。

还请大家都帮忙测试一下,也让大家都彻底搞清楚这件事。

谢谢大家!

使用道具 举报

回复
论坛徽章:
0
57#
 楼主| 发表于 2003-4-15 16:15 | 只看该作者
呵呵,我把贴子往前提一下,拜托版主们、高手们都关注一下吧。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
58#
发表于 2003-4-15 16:26 | 只看该作者

如果数据库是 us7ascii 要往 zhs16gbk 里面 imp

步骤:
1: 设置 NLS_LANG=AMERICAN_AMERICA.US7ASCII , exp us7ascii 的数据库
2: 修改dmp文件的第2、3字节,从 00 01 --->  03  54
3: 设置NLS_LANG=AMERICAN_AMERICA.ZHS16GBK , imp 修改后的dmp文件

如果符合这三个步骤,在我的所有测试中都是成功的!
其他人也都成功了
如果有问题,请确认符合这几个步骤,保证数据库  or  client 版本是否一致,并想想自己的系统是否有特别的地方

imp 环境要求支持 zhs16gbk 字符集

关于原理,前面已经说明了

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
59#
发表于 2003-4-15 16:29 | 只看该作者

btw:

请在每次 set  NLS_LANG 后看一看环境变量到底设置是否正确
是否有重复的 NLS_LANG

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
60#
发表于 2003-4-16 09:18 | 只看该作者
我昨天在自己的环境里做测试;

环境 WIN2000  81700EE

1、创建一个字符集为 ZHS16GBK,NCHAR为ZHS16GBK的数据库(假设 A端)
2、再创建一个字符集为 US7ASCII,NCHAR为US7ASCII的数据库 (假设 B端)

在往B端数据库插入数据前,先设置SQLPLUS的字符集为NLS_LANG=.US7ASCII
之后建了一表,往里插了些汉字,EXP出该表。

修改该DMP文件的第二、三字节由00 01为03 54

关闭B端数据库,启动A端数据库,同样

在往A端数据库插入数据前,先设置SQLPLUS的字符集为NLS_LANG=.ZHS16GBK,
IMP,很顺利,虽然提示NCHAR的US7ASCII可能需要转换为ZHS16GBK,
但导入结果是WITHOUT WARNING,

进入A端数据库查看该表,很正常的显示汉字!

说明使用这种方法,把US7ASCII的DMP导入ZHS16GBK的数据库是可行的

不知道由ZHS16GBK到US7ASCII是否可行?

或者说,用这种方法可以完全解决DMP导入时,遇上的关于字符集的此类的情况?

使用道具 举报

回复

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

本版积分规则 发表回复

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