español - sql server vs postgresql 2018
Postgres Case Sensitivity (1)
a_horse_with_no_name es correcto.
En PostgreSQL, los nombres sin comillas son sensibles a mayúsculas y minúsculas. Por lo tanto, SELECT * FROM hello
y SELECT * FROM HELLO
son equivalentes.
Sin embargo, los nombres citados distinguen entre mayúsculas y minúsculas. SELECT * FROM "hello"
no es equivalente a SELECT * FROM "HELLO"
.
Para hacer un "puente" entre los nombres entre comillas y los nombres sin comillas, los nombres sin comillas están implícitamente en minúsculas, por lo tanto hello
, HELLO
y HeLLo
son equivalentes a "hello"
, pero no a "HELLO"
o "HeLLo"
(¡OOPS!).
Por lo tanto, al crear entidades (tablas, vistas, procedimientos, etc.) en PostgreSQL, debe especificarlas sin comillas o con comillas pero con 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 hacerlo "compatible con PostgreSQL" (de modo que contenga foo
s o "foo"
s pero no "FOO"
s).
- Ya sea mediante la edición explícita del archivo de volcado. (Si está usando Linux, puede hacer el
sed -r ''s/"[^"]+"//L/0/g'' dumpfile
; sin embargo, tenga en cuenta que este comando también puede modificar el texto en literales de cadena). - O especificando algunas opciones al obtener volcado de MSSQL. (No estoy seguro de si existen tales opciones en MSSQL, nunca las usé, pero probablemente deberían existir).
He importado 100 tablas en Postgres desde el servidor MSSql 2008 a través de la herramienta que creó todas las tablas junto con sus columnas en mayúscula . Ahora si quiero hacer una vista de datos desde la tabla, por ejemplo, STD_TYPE_CODES as-
select * from STD_TYPE_CODES
Estoy recibiendo error siguiente-
ERROR: relation "std_type_codes" does not exist
LINE 1: select * from STD_TYPE_CODES
^
********** Error **********
ERROR: relation "std_type_codes" does not exist
SQL state: 42P01
Character: 15
Sé que puedo poner las comillas alrededor del nombre de la mesa as-
select * from "STD_TYPE_CODES"
Pero como he trabajado con MSSql Server, no existe tal problema. Entonces, ¿hay alguna manera de deshacerse de esto? Por favor ayuda.