L'esecuzione di script SQL tramite psql dà errori di sintassi che non si verificano in PgAdmin

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

Domanda

Ho il seguente script per creare una tabella:

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

Funziona benissimo nello strumento di query di PgAdmin. Ma quando provo a lanciarlo dalla riga di comando con psql:

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

ottengo un errore di sintassi, come illustrato di seguito.

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

Perché ricevo un errore di sintassi utilizzando psql e non con pgAdmin?

È stato utile?

Soluzione

Esegui il file 00101-CreateStateTable.sql attraverso un dumper esadecimale. Scommetto che dispone di un indicatore di UTF-16 all'inizio del file (prima del "-" caratteri di commento).

Altri suggerimenti

Per rimuovere sequenza distinta su Ubuntu è possibile utilizzare bomstrip, bomstrip-files

Quello che (s) versione usi? Se non esiste è venuto con la versione 8.2, forse sei connessione con la versione 8.1 o precedente quando si utilizza psql.

Grazie ragazzi. Ho lottato con questo problema per un paio di settimane. Non potevo correre il mio script SQL utilizzando PSQL. Ho pensato che ho alcuni problemi con il mio sistema operativo, ora so che è la questione distinta nel mio file di testo. Ho installato bomstrip pacchetto in Ubuntu e ora tutti i miei script SQL stiamo lavorando di nuovo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top