Skip to Main Content

Oracle Database Discussions

ORA-43915 Character collation in Oracle 19c

Ariagna Bandala salazarMar 31 2022 — edited Mar 31 2022

I find myself migrating from version 12cR2 to version 19c of Oracle, the documentation was previously reviewed to find out if these versions were compatible and it was found that yes, it was possible to perform a direct migration, I already have a schema in version 19c and at doing tests I found a problem with a query that in version 12cR does not generate any error, said problem is the following:
ORA-43915: unable to determine collation: arguments have conflicting collations

In both versions the database instances that were created have the same configuration, which is:
Instance-level character collection: WE8MSWIN1252
Column level collation: BINARY
NLS_COMP at session level: LINGUISTIC
Session-level NLS_SORT: BINARY_CI

The statement is something like:
WITH PERSONA_FULL (
SELECT NOMBRE FROM PERSONA1
UNION
SELECT NOMBRE FROM PERSONA2
)
SELECT PERS_FULL.NOMBRE, CASE WHEN PERS.NOMBRE=' ' THEN ' ' ELSE PERS.NOMBRE END
FROM PERSONA_FULL PERS
LEFT OUTER JOIN PERSONA_FULL PERS_FULL ON PERS.NOMBRE=PERS_FULL.NOMBRE

Do you know how to avoid this problem or why it happens only in version 19c and in 12cR2 there is no problem?

The result of SELECT * FROM V$NLS_PARAMS is attached to the image
Config.PNG

Comments
Post Details
Added on Mar 31 2022
2 comments
649 views