Kip Cole <kipcole9@xxxxxxxxx> writes: > cldr_sql=# select * from models order by name collate 'en-x-icu'::regcollation; > ERROR: syntax error at or near "'en-x-icu'" > LINE 1: select * from models order by name collate 'en-x-icu'::regco… You've got the syntax off a bit. The argument of COLLATE is an identifier, not a string literal (or expression), so you should write select * from models order by name collate "en-x-icu"; The double quotes are needed because most collation names don't follow SQL identifier rules. > Utilmately the objective is to interpolate the collation value into a prepared query so > this is just the first step to validate that casting a COLLATE name is possible or not. If you mean that you want to inject a run-time-variable collation name, you can't, any more than you can inject (say) a run-time-variable table name. You'd have to construct and execute a dynamic SQL string. regards, tom lane