No PostgreSQL, nomes sem aspas não diferenciam maiúsculas de minúsculas. Assim,
SELECT * FROM hello e SELECT * FROM HELLO são equivalentes. No entanto, os nomes entre aspas diferenciam maiúsculas de minúsculas.
SELECT * FROM "hello" é não equivalente a SELECT * FROM "HELLO" . Para fazer uma "ponte" entre nomes entre aspas e nomes sem aspas, os nomes sem aspas são implicitamente em minúsculas, portanto,
hello , HELLO e HeLLo são equivalentes a "hello" , mas não para "HELLO" ou "HeLLo" (OPA!). Assim, ao criar entidades (tabelas, visualizações, procedimentos, etc) no PostgreSQL, você deve especificá-las sem aspas ou entre aspas, mas em minúsculas.
Para converter tabelas/views/etc existentes você pode usar algo como
ALTER TABLE "FOO" RENAME TO "foo" . Ou tente modificar o dump do MSSQL para torná-lo "compatível com PostgreSQL" (para que ele contenha
foo s ou "foo" s, mas não "FOO" s). - Tanto editando explicitamente o arquivo de despejo. (Se você estiver usando Linux, você pode fazer
sed -r 's/"[^"]+"/\L\0/g' dumpfile— no entanto, esteja avisado de que este comando também pode modificar texto em literais de string.) - Ou especificando algumas opções ao obter o dump do MSSQL. (Não tenho certeza se existem essas opções no MSSQL, nunca usei, mas provavelmente essas opções deveriam existir.)