Ejecución de secuencias de comandos SQL a través psql da errores de sintaxis que no se producen en PgAdmin

StackOverflow https://stackoverflow.com/questions/2547790

Pregunta

Tengo la siguiente secuencia de comandos para crear una tabla:

-- Create State table.
DROP TABLE IF EXISTS "State" CASCADE;
CREATE TABLE "State" (
 StateID SERIAL PRIMARY KEY NOT NULL,
 StateName VARCHAR(50)
);

Funciona muy bien en la herramienta de consulta de PgAdmin. Pero cuando intento ejecutarlo desde la línea de comandos usando psql:

psql -U postgres -d dbname -f 00101-CreateStateTable.sql

Me sale un error de sintaxis que se muestra a continuación.

2: ERROR:  syntax error at or near ""
LINE 1: 
        ^
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE will create implicit sequence "State_stateid_seq" for serial column "State.stateid"
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "State_pkey" for table "State"
CREATE TABLE

¿Por qué recibo un error de sintaxis usando psql y no con pgAdmin?

¿Fue útil?

Solución

Ejecutar el archivo de 00101-CreateStateTable.sql a través de un dumper hexagonal. Apuesto a que tiene un marcador UTF-16 en el principio del archivo (antes de los "-" caracteres de comentario).

Otros consejos

Para eliminar la secuencia de lista de materiales en Ubuntu puede utilizar bomstrip, bomstrip-archivos

¿Qué versión (-s) se utilizan? Si existe venía con la versión 8.2, tal vez usted es la conexión con la versión 8.1 o mayor cuando se utiliza psql.

Gracias chicos. He estado luchando con este problema durante unas pocas semanas. No podía correr mis scripts SQL utilizando PSQL. Pensé que tengo algunos problemas con mi sistema operativo, ahora sé que es el tema de lista de materiales en mi archivo de texto. He instalado bomstrip de paquetes en Ubuntu y ahora todos mis scripts SQL están trabajando de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top