楼主: linwz

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

[复制链接]
论坛徽章:
0
41#
 楼主| 发表于 2003-4-12 17:49 | 只看该作者
呵呵,我是想先测试一下不做修改能不能成功的导入,所以什么都没有改,只改了NLS_LANG,后来,我本来也打算再测试一下改导出文件的,但是我看coolyl说他的方法他都测试过了,所以先就先测了他方法,没想到出现了Sysdba无权Startup的现象。

两个导出文件我都附上来,我是按用户导出的,用户名和密码都是Test,其中只有一个表叫TT,数据可以用UltraEdit看得到。

使用道具 举报

回复
论坛徽章:
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
42#
发表于 2003-4-12 18:19 | 只看该作者
你的TT表里有汉字吗?我导入ZHS16GBK的文件,
但看不导汉字,也看不导乱码。

你最好向TT表中插入一些汉字,这样才可以做检查。

使用道具 举报

回复
论坛徽章:
0
43#
 楼主| 发表于 2003-4-12 18:30 | 只看该作者
呵呵,当然有汉字呀,用ultraedit打开导出文件,都能看到那些汉字的。

数据是这样的
SQL> desc test.tt
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
F1                                                 VARCHAR2(20)
F2                                                 VARCHAR2(20)
F3                                                 NCHAR(20)


SQL> select * from test.tt;

F1                   F2                   F3
-------------------- -------------------- --------------------
Hello world          这是一条测试数据     UbJGR;Lu2bJTJ}>]
Hello world          这是一条测试数据     UbJGR;Lu2bJTJ}>]
Hello world          这是一条测试数据     UbJGR;Lu2bJTJ}>]
Hello world          这是一条测试数据     UbJGR;Lu2bJTJ}>]

实际上f3和f3插入的是一样的数据,但f3 一直不正常。

使用道具 举报

回复
论坛徽章:
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
44#
发表于 2003-4-12 18:42 | 只看该作者
我把TEST_US7ASCII的第二,三个字节改为03 54,可以成功导入(WITHOUT WARNING)。
但看到的是:F2=F3,都是乱码。
猜测:可能某些地方还得需要改;
也可能在导出时,实质是不一样的,
只是用文本框打开查看时没发现,
这种方法实质对汉字导入导出是不可取的。
只是可以让英文导入而已。

使用道具 举报

回复
论坛徽章:
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
45#
发表于 2003-4-14 14:50 | 只看该作者
最初由 ZALBB 发布
[B]

是不是按BITI所说的这些步骤:

在你的环境中设置 us7ascii 做 exp
然后修改 dmp 文件中 2,3 字节,从0001 ---> 0354
然后再在 zhs16gbk 的 环境变量中做 imp

后导入成功的? [/B]

是!一点不错!

使用道具 举报

回复
论坛徽章:
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
46#
发表于 2003-4-14 15:38 | 只看该作者
DMP文件里面有没有汉字,若有汉字,有没有出现乱吗?

使用道具 举报

回复
论坛徽章:
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
47#
发表于 2003-4-14 15:45 | 只看该作者

有汉字

最初由 ZALBB 发布
[B]DMP文件里面有没有汉字,若有汉字,有没有出现乱吗? [/B]


也不会是乱码
这是早就测试过次的了

如果你的出了问题
请检查你的原因

使用道具 举报

回复
论坛徽章:
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
48#
发表于 2003-4-14 16:29 | 只看该作者
确认,当然有汉字,折腾这么久,就是为了显示汉字!呵呵

使用道具 举报

回复
论坛徽章:
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
49#
发表于 2003-4-14 16:31 | 只看该作者
我用的是LINWZ传送上来的文件做的测试,
修改了test_us7ascii.dmp文件中的第二,第三个字节
为03 54(原来为00 01,用ultraEdit工具打开),
导入ZHS16GBK的数据库( WIN2000,9.2.1),结果发现是
F2=F3(第二个字段与第三个字段的值一样),都是乱码。

导入前我已经把字符集设置为:AMERICAN_AMERICA.ZHS16GBK

所以,我就认为:

猜测:可能某些地方还得需要改;
也可能在导出时,实质是不一样的,
只是用文本框打开查看时没发现,
这种方法实质对汉字导入导出是不可取的。
只是可以让英文导入而已。


换句话说:A端:数据库的字符集为:AERICAN_AMERICA.US7ASCII           LINWZ的数据库环境
               导出前设置字符集为: AMERICAN_AMERICA.US7ASCII
               
          B端:数据库的字符集为:AERICAN_AMERICA.ZHS16GBK           我的数据库环境
               导出前设置字符集为: AMERICAN_AMERICA.ZHS16GBK
               
A端导出的DMP文件,开头的第二、三个字节由00 01被修改为03 54
后,可成功导入B端环境,但看到的汉字是乱码。

使用道具 举报

回复
论坛徽章:
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
50#
发表于 2003-4-14 17:08 | 只看该作者
最初由 ZALBB 发布
[B]我用的是LINWZ传送上来的文件做的测试,
修改了test_us7ascii.dmp文件中的第二,第三个字节
为03 54(原来为00 01,用ultraEdit工具打开),
导入ZHS16GBK的数据库( WIN2000,9.2.1),结果发现是
F2=F3(第二个字段与第三个字段的值一样),都是乱码。

导入前我已经把字符集设置为:AMERICAN_AMERICA.ZHS16GBK

所以,我就认为:

猜测:可能某些地方还得需要改;
也可能在导出时,实质是不一样的,
只是用文本框打开查看时没发现,
这种方法实质对汉字导入导出是不可取的。
只是可以让英文导入而已。


换句话说:A端:数据库的字符集为:AERICAN_AMERICA.US7ASCII           LINWZ的数据库环境
               导出前设置字符集为: AMERICAN_AMERICA.US7ASCII
               
          B端:数据库的字符集为:AERICAN_AMERICA.ZHS16GBK           我的数据库环境
               导出前设置字符集为: AMERICAN_AMERICA.ZHS16GBK
               
A端导出的DMP文件,开头的第二、三个字节由00 01被修改为03 54
后,可成功导入B端环境,但看到的汉字是乱码。 [/B]


这种情况我出现过,问题所在是我的exp导出的文件,必须是以bin的方式ftp到我的本地来imp,如果以普通的get方式ftp到本地imp,导入后依然为乱码。你可以确认一下,是否以bin方式ftp回来的

使用道具 举报

回复

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

本版积分规则 发表回复

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