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
|