PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Копиране на Postgres от променлива с CSV данни

Това не е възможно с SQL COPY команда. COPY само копия от файл или STDIN .

Можете или да запишете съдържанието на променливата във файл или да го изпратите чрез STDIN. Има смисъл само за повече от няколко реда.

Мисля, че разбрах погрешно въпроса ви преди актуализацията, вероятно нямате нужда от това:

Пътят на файла не може да се обменя като други елементи от данни и не можете да използвате подготвен оператор за това. Изградете цялото изявление преди изпълнение или прибягвайте до динамичен SQL с функция от страна на сървъра като:

CREATE OR REPLACE FUNCTION f_cp(_file text)
  RETURNS void AS
$BODY$
BEGIN
EXECUTE format($$COPY zip_codes FROM %L DELIMITER ',' CSV$$, $1);
END
$BODY$
  LANGUAGE plpgsql;

Обадете се:

SELECT f_cp('/var/lib/postgres/sync/myfile.csv')

format() изисква Postgres 9.1 или по-нова версия.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql последователност nextval в схемата

  2. Как да декларирате променлива в заявка на PostgreSQL

  3. Надграждане на колона varchar до тип enum в postgresql

  4. грешка при инсталиране на python pip psycopg2

  5. Добавяне на нова стойност към съществуващ тип ENUM