PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego nie mogę użyć zmiennej w poleceniu postgres backslash (\COPY)

Ogólnie rzecz biorąc, podstawianie zmiennych działa z metapoleceniami (zaczynając od odwrotnego ukośnika), ale \copy jest wyjątkiem, co udokumentowano na stronie podręcznika psql :

Nie zgadzam się z komentarzem @BaconBits do pytania, które EXECUTE plpgsql może być odpowiedzią. Instrukcja po stronie serwera, dynamiczna lub inna, nie uzyska dostępu do systemu plików po stronie klienta, w przeciwieństwie do \copy . Możesz użyć COPY zamiast tego, ale wymaga to bycia superużytkownikiem i tego pliku, aby był dostępny dla postgres użytkownika na serwerze.

Wierzę, że do \copy ze zmiennej nazwa pliku, zmienna musi zostać wstrzyknięta do skryptu przed psql czyta to. Możesz zintegrować skrypt SQL ze skryptem powłoki i przesłać go do psql jako poprawny ciąg znaków lub filtruj go przez sed lub perl lub jakakolwiek podobna metoda uniksowa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak skonfigurować pgAdmin III, aby otwierał domyślną bazę danych i wybierał węzeł tabel przy starcie?

  2. Przegląd przetwarzania VACUUM w PostgreSQL

  3. Błąd podczas przesyłania danych do Heroku:przesunięcie strefy czasowej poza zakres

  4. Jak podzielić dane z jednej kolumny na trzy kolumny w innej tabeli? SQL

  5. Czy istnieje bezpieczny sposób na zmodyfikowanie tabeli pg_constraint tak, aby nie wykonywać więcej sprawdzania (tymczasowo)?