using COPY table FROM STDIN within script run as psql -f file.sql
| От | Kevin Murphy |
|---|---|
| Тема | using COPY table FROM STDIN within script run as psql -f file.sql |
| Дата | |
| Msg-id | 162A572C-0D79-11D9-8AE5-0003930D3626@genome.chop.edu обсуждение исходный текст |
| Ответы |
Re: using COPY table FROM STDIN within script run as psql
|
| Список | pgsql-general |
This is a tip for the record in case it helps somebody else in the future. I have an import script that relies on a stored procedure that runs as a trigger on inserts into a temporary table. The script looks like this: -- create table -- ... -- define procedure and trigger -- ... -- import data via COPY command: COPY temp_table FROM STDIN WITH NULL AS ''; However, when run as "psql -f import.sql <data.file", it does not work if you use the SQL "COPY" command, even if you are running psql on the database server. You get an error like this: ERROR: missing data for column "somecol". An interesting red-herring is that the column mentioned is not necessarily the first column in the table! The solution is to use the psql "\COPY" command instead (and remove the trailing semi-colon, which cannot be used with psql commands). I.e. this command will work: \COPY temp_table FROM STDIN WITH NULL AS ''; -Kevin Murphy
В списке pgsql-general по дате отправления: