I PostgreSQL är namn utan citat skiftlägeskänsliga. Alltså SELECT * FROM hello och SELECT * FROM HELLO är likvärdiga.
Citerade namn är dock skiftlägeskänsliga. SELECT * FROM "hello" är inte motsvarande SELECT * FROM "HELLO" .
För att skapa en "brygga" mellan citerade namn och namn utan citattecken är namn utan citattecken underförstått med små bokstäver, alltså hello , HELLO och HeLLo motsvarar "hello" , men inte till "HELLO" eller "HeLLo" (OOPS!).
Alltså när du skapar enheter (tabeller, vyer, procedurer, etc) i PostgreSQL, bör du ange dem antingen utan citat eller citerade-men-gemener.
För att konvertera befintliga tabeller/vyer/etc kan du använda något som ALTER TABLE "FOO" RENAME TO "foo" .
Eller försök att ändra dump från MSSQL för att göra den "PostgreSQL-kompatibel" (så att den kommer att innehålla foo s eller "foo" s men inte "FOO" s).
- Antingen genom att explicit redigera dumpfilen. (Om du använder Linux kan du göra
sed -r 's/"[^"]+"/\L\0/g' dumpfile— dock varnas för att detta kommando också kan ändra text i bokstavssträngar.) - Eller genom att ange några alternativ när du hämtar dump från MSSQL. (Jag är inte säker på om det finns sådana alternativ i MSSQL, har aldrig använt det, men förmodligen borde sådana alternativ finnas.)