修改oracle 编码

1. 介绍

Oracle数据库是目前应用最广泛的一种关系型数据库,在开发过程中,经常会遇到需要修改Oracle编码的情况。修改Oracle编码就是修改Oracle数据库中的字符集,包括数据库、表、列等所有字符数据类型的编码。本文将详细介绍修改Oracle编码的方法。

2. 修改Oracle编码的必要性

当使用不同的字符集将数据存储在同一个数据库中时,可能会遇到两个问题:

2.1 乱码

如果将多种不同的字符集存储在同一个数据库中,在一些情况下可能会出现乱码的问题。例如,当按照一个字符集存储数据时,但是读取数据时使用了另外的字符集,那么查询结果会展示为乱码。这种情况可能会在Oracle客户端和Web应用程序之间的通信过程中发生。解决这个问题的办法是将所有数据存储在同一字符集中。

2.2 性能问题

当使用不同的字符集存储数据时,查询数据的速度可能会变慢。这是因为Oracle需要在查询和返回结果时进行字符集转换。如果将所有的数据存储在同一字符集中,查询数据的速度将会更加快速。

3. 修改数据库编码

如果需要修改整个Oracle数据库的字符集,可以按照以下步骤操作:

3.1 离线修改

1. 停止所有连接到数据库上的程序。

SHUTDOWN IMMEDIATE

2. 根据需要备份数据库。

3. 运行ALTER DATABASE命令更改数据库字符集。

ALTER DATABASE CHARACTER SET character_set_name;

例如,如果要将整个数据库的字符集修改为UTF-8,则可以使用以下命令:

ALTER DATABASE CHARACTER SET UTF8;

4. 重新启动数据库。

STARTUP

3.2 在线修改

如果需要在线修改Oracle数据库字符集,可以按照以下步骤操作:

3.2.1 检查是否可以修改

在进行在线修改之前,首先需要检查是否可以修改字符集:

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';

如果输出的值为读取模式,则可以进行修改;如果输出的值为只读,则无法修改。

3.2.2 修改字符集

1. 在Oracle服务器上,以sysdba身份登录。

2. 运行以下命令:

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE CHARACTER SET character_set_name;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4;

ALTER SYSTEM SET AQ_TM_PROCESSES=1;

ALTER SYSTEM DISABLE RESTRICTED SESSION;

例如,如果要将数据库字符集修改为UTF-8:

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE CHARACTER SET UTF8;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4;

ALTER SYSTEM SET AQ_TM_PROCESSES=1;

ALTER SYSTEM DISABLE RESTRICTED SESSION;

3. 重新启动数据库。

SHUTDOWN IMMEDIATE;

STARTUP;

4. 修改表和列的字符集

如果已经有一个数据库和表,并且需要更改这个表或其中的列的字符集,可以按照以下步骤操作:

4.1 查看表和列的当前字符集

运行以下命令查看表和列的当前字符集:

SELECT OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARSETID, NUMERIC_PRECISION, NUMERIC_SCALE FROM ALL_TAB_COLUMNS WHERE OWNER='username';

在查询结果中,CHARSETID列代表字符集的ID。Oracle支持以下字符集的ID:

1. 1: US7ASCII

2. 2: WE8DEC

3. 3: WE8HP

4. 4: WE8EBCDIC37

5. 5: WE8EBCDIC500

6. 6: WE8EBCDIC285

7. 8: WE8ISO8859P1

8. 9: EE8ISO8859P2

9. 10: SE8ISO8859P3

10. 11: NEE8ISO8859P4

11. 12: CL8ISO8859P5

12. 13: AR8ISO8859P6

13. 14: EL8ISO8859P7

14. 15: IW8ISO8859P8

15. 16: WE8ISO8859P9

16. 17: NE8ISO8859P10

17. 18: TH8TISASCII

18. 19: TH8TISEBCDIC

19. 20: WE8ISO8859P15

20. 21: S8SBCS

21. 22: DK8ISO8859P1

22. 23: EE8MSWIN1250

23. 24: LT8MSWIN1257

24. 25: LV8MSWIN1257

25. 26: BLT8ISO8859P13

26. 27: LV8ISO8859P13

27. 28: BS2000

28. 29: AR8MSWIN1256

29. 30: EL8MSWIN1253

30. 31: IW8MSWIN1255

31. 32: TR8MSWIN1254

32. 33: WE8MSWIN1252

33. 34: BLT8MSWIN1257

34. 35: CL8MSWIN1251

35. 36: PT8MSWIN1252

36. 37: RU8MSWIN1251

37. 38: WE8MSWIN1254

38. 39: WE8MSWIN1253

39. 40: JA16EUC

40. 41: JA16EUCYEN

41. 42: JA16SJIS

42. 43: KO16KSC5601

43. 44: KO16DBCS

44. 45: ZHT32TRIS

45. 46: ZHT16DBT

46. 47: ZHT16BIG5

47. 48: JA16SJISTILDE

48. 49: JA16MACSJIS

49. 50: ZHS16CGB231280

50. 51: ZHS16DBCS

51. 52: ZHS16GBK

52. 53: AL32UTF8

53. 54: UTFE

54. 55: UTF8

55. 56: WE8ISO8859P5

56. 57: WE8MACROMAN8S

57. 58: WE8NCR4970S

58. 59: WE8NEXTSTEP

59. 60: AR8ARABICMAC

60. 61: WE8PC858

61. 62: WE8PC437

62. 63: EL8PC737

63. 64: IW8PC1507

64. 65: TR8PC857

65. 66: WE8PC860

66. 67: IS8PC861

67. 68: EE8MACCES

68. 69: WE8PC863

69. 70: LT8PC772

70. 71: ES8PC850

71. 72: CL8MACCYRILLIC

72. 73: F8EBCDIC1156

73. 74: D8EBCDIC1141

74. 75: IW8PC862

75. 76: IW8PC866

76. 77: CL8MACCYRILLICS

77. 78: CD8PC850

78. 79: HU8ABMOD

79. 80: N8PC865

80. 81: BLT8CP921

81. 82: LV8RST104090

82. 83: BLT8EBCDIC1112C

83. 84: LV8PC1117

84. 85: US8PC437

85. 86: CS9MSWIN1258

86. 87: N9MSWIN1254

87. 88: WE8PC852

88. 89: EE8PC852

89. 90: TR8MACTURKISH

90. 91: XISO8859P1

91. 92: XISO8859P2

92. 93: XISO8859P3

93. 94: XISO8859P4

94. 95: XISO8859P5

95. 96: XISO8859P6

96. 97: XISO8859P7

97. 98: XISO8859P8

98. 99: XISO8859P9

99. 100: XISO8859P10

100. 101: US8DEC

101. 102: WE8HPV1

102. 104: WE8ISO8859P1

103. 105: EE8ISO8859P15

104. 106: RU8PC855

105. 107: RU8BESTA

106. 108: IW8PC857

107. 109: IW8PC860

108. 110: US8PC864

109. 111: TR8PC857

110. 112: WE8PC858

111. 113: EL8PC851

112. 114: EL8PC853

113. 115: US8PC622437

114. 120: JA16VMS

115. 121: JA16EBCDIC930

116. 122: RU8IBM1154

117. 123: TR8MACTURKISHS

118. 124: NE8PC863

119. 125: TH8MACTHAI

120. 126: TH8MACTHAIS

121. 130: AR8MSWIN1256E

122. 134: LA8PASSPORT

123. 138: US8BS2000

124. 140: D8BS2000

125. 142: F8BS2000

126. 150: AR8NAFITHA711T

127. 152: CN8GB2312

128. 153: ZH16GBK

129. 154: VN8MSWIN1258

130. 155: VN8VN3

131. 156: VN8VN3T

132. 157: JA16MACPT

133. 158: JA16EBCDIC930R

134. 159: LA8ISO6937

135. 160: PT8ISO6937

136. 161: HU8ISO6937

137. 162: EL8ISO8859P7

138. 163: TR8TRADITIONAL

139. 164: WE8NEXTSTEP5

140. 165: BG8PC852

141. 166: EL8PC737

142. 170: TR8MACTURKISH2

143. 171: WE8MSWIN1256

144. 172: AR8IBMP852

145. 173: ZH8ISO8859P1

146. 174: ZH8GB2312

147. 175: ZH8HKSCS

148. 176: ZH8CGB231280

149. 177: BG8ISO8859P5

150. 178: EL8ISO8859P8

151. 180: WE8PC860MULTIBYTE

152. 181: UTF16

153. 182: CE8ISO8859P10

154. 183: WE8ISO8859P2

155. 188: JA16MACCE

156. 189: TH8MACTHAI2

157. 190: ZH8BIG5HKSCS

158. 191: ZH8GB2312RAW

159. 192: ZH8GB18030

160. 193: JA16PROC

161. 194: JA16EUCTILDE

162. 195: KO16MSWIN949

163. 196: ZHS32GB18030

164. 197: AR8MSWIN1256EBCDIC

165. 200: JA16SJISYEN

166. 201: ZHS16GBK2K

167. 202: UTF32

168. 203: AL16UTF16

169. 204: KO16TILDE

170. 209: WE8ISO8859P13

171. 210: WE8ISO8859P14

172. 211: EE8ISO8859P4

173. 212: PT8ISO873

174. 213: BG

上一篇:修改oracle参数

下一篇:修改oracle 参数

数据库标签