Useful article on collation basics. Especially useful for those who have to deal with the NLS.
There is also one more quite insidious subtle nuance (rather gotcha!) when one uses integer number as an index to massive and them somewhere else in code relies on collating.
Due to Integers' may not exceed 18 digits in length, starting from 19th digit (and further) - such indices are being treated as strings! Except, (here is gotcha #2) - if these digits (after 18th) are 0 (zeroes).
so
set ^a(123456789012345678)="numeric index"
set ^a("12345678901234567800")="numeric index"
set ^a("12345678901234567899")="string index"
Such annoyance may create problems at looping through arrays with long numeric indices. (For example - accounts' numbers as per RBU - that are of 20 digits in length)
Useful article on collation basics. Especially useful for those who have to deal with the NLS.
There is also one more quite insidious subtle nuance (rather gotcha!) when one uses integer number as an index to massive and them somewhere else in code relies on collating.
Due to Integers' may not exceed 18 digits in length, starting from 19th digit (and further) - such indices are being treated as strings! Except, (here is gotcha #2) - if these digits (after 18th) are 0 (zeroes).
so
set ^a(123456789012345678)="numeric index"
set ^a("12345678901234567800")="numeric index"
set ^a("12345678901234567899")="string index"
Such annoyance may create problems at looping through arrays with long numeric indices. (For example - accounts' numbers as per RBU - that are of 20 digits in length)