Try OpenEdge Now
skip to main content
Internationalizing Applications
Understanding Character Processing Tables : The convmap.dat file and its tables : Collations and collation tables
 

Collations and collation tables

A collation is a set of rules that determine how character data is ordered. OpenEdge provides a set of collation tables to sort and compare character data. OpenEdge also supports the International Components for Unicode (ICU) collations, which provide linguistic sorting of Unicode data based on the Unicode Collation Algorithm. OpenEdge uses a collation when it does the following:
*Compares CHARACTER strings using a ABL relational operator or the ABL COMPARE function
*Generates the collation value of a CHARACTER data item using the ABL COLLATE option of the FOR statement, the OPEN QUERY statement, and the PRESELECT phrase
*Sorts the results of a ABL query that uses the FOR statement's BY or EACH option
*Builds or rebuilds databases indexes
Use the Collation Table (-cpcoll) startup parameter to specify the ICU collation or OpenEdge collation table you want use. You can also specify an OpenEdge collation or an ICU collation with the ABL COMPARE function and the COLLATE option on the ABL FOR statement, OPEN QUERY statement, and PRESELECT phrase.
Note: For more information about character processing and ICU collations, refer to the README.txt file in the directory OpenEdge/prolang.
The following figure shows code page 1253's GREEK collation table, which resides in the greek.dat file.

Code page 1253's GREEK collation table

COLLATION
CODEPAGE-NAME 1253
COLLATION-NAME GREEK
COLLATION-TRANSLATION-VERSION 1.0-16
CASE-INSENSITIVE-SORT
/*000-015*/ 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
/*016-031*/ 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
/*032-047*/ 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
/*048-063*/ 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
/*064-079*/ 064 065 069 073 077 081 085 087 091 097 101 103 107 111 115 121
/*080-095*/ 125 127 131 135 139 143 145 147 153 157 161 165 166 167 168 169
/*096-111*/ 170 065 069 073 077 081 085 087 091 097 101 103 107 111 115 121
/*112-127*/ 125 127 131 135 139 143 145 147 153 157 161 171 172 173 174 175
/*128-143*/ 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
/*144-159*/ 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
/*160-175*/ 208 209 067 210 211 212 213 214 215 216 217 218 219 220 221 222
/*176-191*/ 223 224 225 226 227 228 229 230 083 093 099 231 123 232 149 163
/*192-207*/ 099 067 071 075 079 083 089 093 095 099 105 109 113 117 119 123
/*208-223*/ 129 133 233 137 141 149 151 155 159 163 099 149 067 083 093 099
/*224-239*/ 149 067 071 075 079 083 089 093 095 099 105 109 113 117 119 123
/*240-255*/ 129 133 137 137 141 149 151 155 159 163 099 149 123 149 163 234
ENDTABLE
CASE-SENSITIVE-SORT
/*000-015*/ 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
/*016-031*/ 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
/*032-047*/ 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
/*048-063*/ 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
/*064-079*/ 064 065 069 073 077 081 085 087 091 097 101 103 107 111 115 121
/*080-095*/ 125 127 131 135 139 143 145 147 153 157 161 165 166 167 168 169
/*096-111*/ 170 066 070 074 078 082 086 088 092 098 102 104 108 112 116 122
/*112-127*/ 126 128 132 136 140 144 146 148 154 158 162 171 172 173 174 175
/*128-143*/ 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
/*144-159*/ 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
/*160-175*/ 208 209 067 210 211 212 213 214 215 216 217 218 219 220 221 222
/*176-191*/ 223 224 225 226 227 228 229 230 083 093 099 231 123 232 149 163
/*192-207*/ 100 067 071 075 079 083 089 093 095 099 105 109 113 117 119 123
/*208-223*/ 129 133 233 137 141 149 151 155 159 163 099 149 068 084 094 100
/*224-239*/ 150 068 072 076 080 084 090 094 096 100 106 110 114 118 120 124
/*240-255*/ 130 134 138 138 142 150 152 156 160 164 100 150 124 150 164 234
ENDTABLE
ENDCOLLATION
The figure shows that the collation table has two sections, one for case-insensitive sorts and one for case-sensitive sorts. Each section has a value for each element in the code page. The value of an element represents the sort order of that element. For example, in a case-insensitive sort that uses this collation table, element 1 sorts first and element 97 sorts sixty-sixth.