V PostgreSQL neoznačená jména nerozlišují malá a velká písmena. Tedy SELECT * FROM hello a SELECT * FROM HELLO jsou ekvivalentní.
U jmen v uvozovkách se však rozlišují velká a malá písmena. SELECT * FROM "hello" není ekvivalentní SELECT * FROM "HELLO" .
Aby se vytvořil "most" mezi jmény v uvozovkách a jmény v uvozovkách, jména v uvozovkách jsou implicitně malá, takže hello , HELLO a HeLLo jsou ekvivalentní "hello" , ale ne na "HELLO" nebo "HeLLo" (OOPS!).
Tedy při vytváření entity (tabulky, pohledy, procedury atd.) v PostgreSQL, měli byste je zadat buď bez uvozovek, nebo v uvozovkách s malými písmeny.
Chcete-li převést existující tabulky/pohledy/atd., můžete použít něco jako ALTER TABLE "FOO" RENAME TO "foo" .
Nebo zkuste upravit výpis z MSSQL tak, aby byl „kompatibilní s PostgreSQL“ (takže bude obsahovat foo s nebo "foo" s, ale ne "FOO" s).
- Buď explicitní úpravou souboru výpisu. (Pokud používáte Linux, můžete použít
sed -r 's/"[^"]+"/\L\0/g' dumpfile— upozorňujeme však, že tento příkaz může také upravit text v řetězcových literálech.) - Nebo zadáním některých možností při získávání výpisu z MSSQL. (Nejsem si jistý, jestli takové možnosti v MSSQL existují, nikdy jsem to nepoužil, ale pravděpodobně by takové možnosti měly existovat.)