问一道关于字符集的问题

[复制链接]
查看11 | 回复7 | 2006-4-17 13:46:34 | 显示全部楼层 |阅读模式
In your current session ,the NLS_LANG parameter is set to GERMAN_GERMANY.WE8ISO8859P1.You are gonging to use SQL*Loader toexport and import several tables .You want to convert the data and import it into a database with a different character set.How could you accomplish this task?
A.set the NLS_LANG parameter for the export.
B.shut down the instance and restart it using the desired character set before exporting the data.
C.the data cannot be converted.
D.set the NLS_LANG parameter for the import.
这道题目为什么只选了D。A为什么不能选?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
怎么没人帮一下啊?!
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
个人以为:
导出时直接使用数据库的字符集类型导出,用不着导出和字符集不同的格式,
但导入时就不同了,因为如果要导入的数据的字符集和被导入数据的数据库字符集不同,
那么需要在导入之前先进行转换。
所以D是对的。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
如果需要转换字符集,需要确保目的字符集是源字符集的父集,否则是不可以的
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
最初由 歆歆 发布
[B]如果需要转换字符集,需要确保目的字符集是源字符集的父集,否则是不可以的 [/B]

父集是什么概念?能不能讲的具体点?如果数据库1采用的是A字符集数据库2采用的是B字符集,现在要把数据库1中的数据导出后,导入到数据库2,那么该怎么办?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
应该是要导入数据的数据库字符集B要包含被导入数据的数据库字符集A。
或者说A是B的子集。
WE8ISO8859P1包含ASCII字符集。
也就是A可以是ASCII导入到WE8ISO8859P1中,但WE8ISO8859P1导入到ASCII中可能会丢失数据。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
照这么说如果数据库1的字符集A是数据库2字符集B的超集,那么可以是在1导出时,将字符集设为B,然后导入时无须任何转换;或者导出时不改变字符集,而在导入时将数据库2的字符集设为A,都可以满足数据的正确导入。是不是这样?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
可以这样认为吧,不过导出文件毕竟一般不是专门为某个字符集的数据库而道出的。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行