En PostgreSQL, los nombres sin comillas no distinguen entre mayúsculas y minúsculas. Así SELECT * FROM hello y SELECT * FROM HELLO son equivalentes.
Sin embargo, los nombres entrecomillados distinguen entre mayúsculas y minúsculas. SELECT * FROM "hello" es no equivalente a SELECT * FROM "HELLO" .
Para hacer un "puente" entre los nombres entre comillas y los nombres sin comillas, los nombres sin comillas se escriben implícitamente en minúsculas, por lo tanto hello , HELLO y HeLLo son equivalentes a "hello" , pero no a "HELLO" o "HeLLo" (¡UPS!).
Así, al crear entidades (tablas, vistas, procedimientos, etc.) en PostgreSQL, debe especificarlas sin comillas o entre comillas pero en minúsculas.
Para convertir tablas/vistas/etc existentes, puede usar algo como ALTER TABLE "FOO" RENAME TO "foo" .
O intente modificar el volcado de MSSQL para que sea "compatible con PostgreSQL" (para que contenga foo s o "foo" s pero no "FOO" s).
- Ya sea editando explícitamente el archivo de volcado. (Si está usando Linux, puede hacer
sed -r 's/"[^"]+"/\L\0/g' dumpfile— sin embargo, tenga en cuenta que este comando también puede modificar el texto en cadenas literales). - O especificando algunas opciones al obtener un volcado de MSSQL. (No estoy seguro de si hay tales opciones en MSSQL, nunca lo usé, pero probablemente deberían existir tales opciones).