I wrote script to change all tables default collation:
BEGIN
FOR rc IN (
SELECT * FROM ALL_ALL_TABLES WHERE owner='SchemaName' AND TABLE_NAME NOT IN ('__EFMigrationsHistory')
)
LOOP
DBMS_OUTPUT.put_line(rc.TABLE_NAME);
EXECUTE IMMEDIATE 'ALTER TABLE "SchemaName"."' || rc.TABLE_NAME || '" DEFAULT COLLATION BINARY_CI';
END LOOP;
END;
After that I have removed varchar indexes, changed COLLATION of columns and created index again.
How I can set DEFAULT COLLATION for new tables by default? Change User default collation doesn't work for it:
ALTER USER SchemaName DEFAULT COLLATION BINARY_CI;