首页 > 开发 > 综合 > 正文

字符集转换的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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表