字符集转换的exp/imp试验二
2024-07-21 02:34:05
供稿:网友
39. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5c4.dmp fromuser=test touser=test ignore=y
5c4.dmp是中文客户端导出的英文数据库文件;但是数据库是换过的。
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是乱码,实际上导入失败。
40. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5c4_2.dmp fromuser=test touser=test ignore=y
5c4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的。
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是乱码,实际上导入失败。
41. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e1.dmp fromuser=test touser=test ignore=y
5e1.dmp是英文客户端导出的英文数据库文件,ASCII字符集是英文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是中文,实际上导入成功。
42. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e1_2.dmp fromuser=test touser=test ignore=y
5e1_2.dmp是英文客户端导出的英文数据库文件,但是ASCII字符集是换成中文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是???,实际上导入失败。
43. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e2.dmp fromuser=test touser=test ignore=y
5e2.dmp是中文客户端导出的英文数据库文件,ASCII字符集是中文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是乱码,实际上导入失败。
44. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e2_2.dmp fromuser=test touser=test ignore=y
5e2_2.dmp是中文客户端导出的英文数据库文件,但是ASCII字符集是换成英文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是乱码,实际上导入失败。
45. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e3.dmp fromuser=test touser=test ignore=y
5e3.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,ASCII字符集是英文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是???,实际上导入失败。
46. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e3_2.dmp fromuser=test touser=test ignore=y
5e3_2.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成中文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是???,实际上导入失败。
47. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e4.dmp fromuser=test touser=test ignore=y
5e4.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是???,实际上导入失败。
48. D机器是英文字符集,B机器是英文数据库
imp system/manager@8e file=c:5e4_2.dmp fromuser=test touser=test ignore=y
5e4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成英文的;
导入成功,没有报错信息。
用英文客户端SQL/PLUS访问8E,数据库是中文,实际上导入成功。
四:向B的8c倒入操作(数据库是中文转换成的英文数据库),客户机D是英文字符集
备注:客户机是中文字符集的情况其实不用测试了,因为客户机和服务器不一致,肯定出现问题。
49. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c1.dmp fromuser=test touser=test ignore=y
5c1.dmp是英文客户端导出的中文数据库文件;ASCII字符集是英文的
失败
50. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c1_2.dmp fromuser=test touser=test ignore=y
5c1_2.dmp是英文客户端导出的中文数据库文件,ASCII字符集是改成中文的;
失败
51. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c2.dmp fromuser=test touser=test ignore=y
5c2.dmp是中文客户端导出的中文数据库文件,ASCII字符集是中文的;
失败
52. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c2_2.dmp fromuser=test touser=test ignore=y
5c2_2.dmp是中文客户端导出的中文数据库文件,但是ASCII字符集是改成英文的;
失败
53. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c3.dmp fromuser=test touser=test ignore=y
5c3.dmp是英文客户端导出的英文数据库文件,但是数据库是换过的,ASCII字符集是英文的;
成功。
54. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c3_2.dmp fromuser=test touser=test ignore=y
5c3_2.dmp是英文客户端导出的英文数据库文件,但是数据库是换过的,但是ASCII字符集是改成中文的;
失败
55. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c4.dmp fromuser=test touser=test ignore=y
5c4.dmp是中文客户端导出的英文数据库文件;但是数据库是换过的。
失败
56. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5c4_2.dmp fromuser=test touser=test ignore=y
5c4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的。
失败
57. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e1.dmp fromuser=test touser=test ignore=y
5e1.dmp是英文客户端导出的英文数据库文件,ASCII字符集是英文的;
成功。
58. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e1_2.dmp fromuser=test touser=test ignore=y
5e1_2.dmp是英文客户端导出的英文数据库文件,但是ASCII字符集是换成中文的;
失败
59. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e2.dmp fromuser=test touser=test ignore=y
5e2.dmp是中文客户端导出的英文数据库文件,ASCII字符集是中文的;
失败
60. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e2_2.dmp fromuser=test touser=test ignore=y
5e2_2.dmp是中文客户端导出的英文数据库文件,但是ASCII字符集是换成英文的;
失败
61. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e3.dmp fromuser=test touser=test ignore=y
5e3.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,ASCII字符集是英文的;
失败
62. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e3_2.dmp fromuser=test touser=test ignore=y
5e3_2.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成中文的;
失败
63. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e4.dmp fromuser=test touser=test ignore=y
5e4.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的
失败
64. D机器是英文字符集,B机器是中文转换成的英文数据库
imp system/manager@8c file=c:5e4_2.dmp fromuser=test touser=test ignore=y
5e4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成英文的;
成功。
五:向B的8e倒入操作(数据库是英文转换成的中文数据库),客户机D是中文字符集
备注:客户机是英文字符集的情况其实不用测试了,因为客户机和服务器不一致,肯定出现问题。
65. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c1.dmp fromuser=test touser=test ignore=y
5c1.dmp是英文客户端导出的中文数据库文件;ASCII字符集是英文的
失败
66. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c1_2.dmp fromuser=test touser=test ignore=y
5c1_2.dmp是英文客户端导出的中文数据库文件,ASCII字符集是改成中文的;
失败
67. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c2.dmp fromuser=test touser=test ignore=y
5c2.dmp是中文客户端导出的中文数据库文件,ASCII字符集是中文的;
成功
68. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c2_2.dmp fromuser=test touser=test ignore=y
5c2_2.dmp是中文客户端导出的中文数据库文件,但是ASCII字符集是改成英文的;
失败
69. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c3.dmp fromuser=test touser=test ignore=y
5c3.dmp是英文客户端导出的英文数据库文件,但是数据库是换过的,ASCII字符集是英文的;
失败
70. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c3_2.dmp fromuser=test touser=test ignore=y
5c3_2.dmp是英文客户端导出的英文数据库文件,但是数据库是换过的,但是ASCII字符集是改成中文的;
成功
71. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c4.dmp fromuser=test touser=test ignore=y
5c4.dmp是中文客户端导出的英文数据库文件;但是数据库是换过的。
失败
72. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5c4_2.dmp fromuser=test touser=test ignore=y
5c4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的。
失败
73. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e1.dmp fromuser=test touser=test ignore=y
5e1.dmp是英文客户端导出的英文数据库文件,ASCII字符集是英文的;
失败
74. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e1_2.dmp fromuser=test touser=test ignore=y
5e1_2.dmp是英文客户端导出的英文数据库文件,但是ASCII字符集是换成中文的;
成功
75. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e2.dmp fromuser=test touser=test ignore=y
5e2.dmp是中文客户端导出的英文数据库文件,ASCII字符集是中文的;
失败
76. D机器是中文字符集,B机器是英文转换成的中文数据库
imp sy stem/manager@8e file=c:5e2_2.dmp fromuser=test touser=test ignore=y
5e2_2.dmp是中文客户端导出的英文数据库文件,但是ASCII字符集是换成英文的;
失败
77. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e3.dmp fromuser=test touser=test ignore=y
5e3.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,ASCII字符集是英文的;
失败
78. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e3_2.dmp fromuser=test touser=test ignore=y
5e3_2.dmp是英文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成中文的;
失败
79. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e4.dmp fromuser=test touser=test ignore=y
5e4.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的
成功
80. D机器是中文字符集,B机器是英文转换成的中文数据库
imp system/manager@8e file=c:5e4_2.dmp fromuser=test touser=test ignore=y
5e4_2.dmp是中文客户端导出的中文数据库文件,但是数据库是换过的,但是ASCII字符集是换成英文的;
失败
上面我的文笔可能有些不是很通顺,但是我想这些记录不是给一般人看的,是给有Oracle数据库经验的人看的,应该看得懂。
有些试验其实可以不做,例如导出和导入时候假如客户端和数据库字符集不一致肯定出错,还有5c1.dmp、5e2.dmp、5e3.dmp、5c4.dmp以及它们的修改ASCII字符集后的导出文件其实都是不可用的,
对它们进行测试是没有必要的。但是为了维护试验的完整性,我前面的实验做了,后面的试验就没有写出来了。
后记:
/********************************
1:5C的测试
*********************************/
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
---------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
SQL> Select substr('东北大学',1,2) from dual;
Select substr('东北大学',1,2) from dual
*
ERROR at line 1:
ORA-01756: quoted string not PRoperly terminated
SQL> SELECT VSIZE('男') FROM DUAL;
VSIZE('DP')
-----------
2
SQL>
SQL> SELECT length('男') FROM DUAL;
LENGTH('DP')
------------
2
SQL>
SQL> SELECT lengthb('男') FROM DUAL;
LENGTHB('DP')
-------------
2
/***************************
2:5E的测试
****************************/
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------
AMERICAN_AMERICA.US7ASCII
SQL> Select substr('东北大学',1,2) from dual;
SU
--
东
SQL> SELECT VSIZE('男') FROM DUAL;
VSIZE('男')
-----------
2
SQL>
SQL> SELECT length('男') FROM DUAL;
LENGTH('男')
------------
2
SQL>
SQL> SELECT lengthb('男') FROM DUAL;
LENGTHB('男')
-------------
2
/********************************
3:8C的测试
*********************************/
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------
AMERICAN_AMERICA.US7ASCII
SQL> Select substr('东北大学',1,2) from dual;
SU
--
东
SQL> SELECT VSIZE('男') FROM DUAL;
VSIZE('男')
-----------
2
SQL>
SQL> SELECT length('男') FROM DUAL;
LENGTH('男')
------------
2
SQL>
SQL> SELECT lengthb('男') FROM DUAL;
LENGTHB('男')
-------------
2