Natongal Language Support(NLS)参数,例NLS_SORT,NLS_COMP,NLS_DATE_FORMAT会影响用字符串索引的关联数组。
(1)在填充了关联数组之后改变NLS参数的值
初始化参数NLS_SORT和NLS_COMP决定用字符索引的关联数组的索引的存储存顺序。如果在填充了用字符串索引的关联数组之后,改变了任何一个参数,则集合的方法FIRST,LAST,NEXT,PRIOR会返回不希望的值或产生异常。如果必须要在会话改变这些初始化参数的值,可以在改变之后重新填充字符索引的关联数组。
(2)非VARCHAR2数据类型的索引
在用字符串索引的关联数组的声明中,字符串的类型必须是VARCHAR2或它的子类型。然而可以使用任何可以被TO_CHAR转换为VARCHAR2类型的索引来填充关联数组。
如果你的索引有不是VARCHAR2类型和它的子类型的,要确保这些索引在初始化参数改变之后是一致的和唯一的。
n 不要使用to_char(sysdate)作为索引,因为nls_data_format改变之后,这个值也变了。
n 不要使用可能被转换为相同的VARCHAR2值的不同的NVARCHAR2值做索引。
n 不要使用仅仅在大小写、音标字符、语调字符不同的CHAR或VARCHAR2索引
如果NLS_SORT参数以_CI或AI结束,则仅有大小写、音标、音调不同的索引可能被转换为相同的值。
(3)将关联数据传递给远程数据库
如果将关联数组作为参数传递给远程数据库,并且本地和远程数据库有不同的NLS_SORT和NLS_COMP参数值:
n 集合的方法FIRST,LAST,NEXT,PRIOR会返回不希望的值或产生异常。
n 在本地数据库上唯一的索引在远程数据库上可能会不唯一,会产生预定义的VALUE_ERROR异常。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1107198/ ,如需转载,请注明出处,否则将追究法律责任。