I PostgreSQL er navne uden anførselstegn mellem store og små bogstaver. Derfor SELECT * FROM hello og SELECT * FROM HELLO er ækvivalente.
Anførte navne skelner dog mellem store og små bogstaver. SELECT * FROM "hello" er ikke svarende til SELECT * FROM "HELLO" .
For at lave en "bro" mellem navne uden anførselstegn og navne uden anførselstegn, er navne uden anførselstegn implicit med små bogstaver, således hello , HELLO og HeLLo svarer til "hello" , men ikke til "HELLO" eller "HeLLo" (UPS!).
Således når du opretter enheder (tabeller, visninger, procedurer osv.) i PostgreSQL, bør du angive dem enten uden citat eller citeret-men med små bogstaver.
For at konvertere eksisterende tabeller/visninger/osv kan du bruge noget som ALTER TABLE "FOO" RENAME TO "foo" .
Eller prøv at ændre dump fra MSSQL for at gøre det "PostgreSQL-kompatibelt" (så det vil indeholde foo s eller "foo" s, men ikke "FOO" s).
- Enten ved eksplicit at redigere dumpfil. (Hvis du bruger Linux, kan du lave
sed -r 's/"[^"]+"/\L\0/g' dumpfile— vær dog advaret om, at denne kommando også kan ændre tekst i strenge bogstaver.) - Eller ved at angive nogle muligheder, når du henter dump fra MSSQL. (Jeg er ikke sikker på, om der er sådanne muligheder i MSSQL, har aldrig brugt det, men sandsynligvis burde sådanne muligheder eksistere.)