PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengapa saya tidak bisa menggunakan variabel dalam perintah backslash postgres (\COPY)

Secara umum, substitusi variabel berfungsi dengan perintah meta (dimulai dengan garis miring terbalik), tetapi \copy adalah pengecualian, seperti yang didokumentasikan dalam halaman manual psql :

Saya tidak setuju dengan komentar @BaconBits untuk pertanyaan yang EXECUTE plpgsql bisa menjadi jawabannya. Pernyataan sisi server, dinamis atau lainnya, tidak akan mengakses sistem file sisi klien, bertentangan dengan \copy . Anda dapat menggunakan COPY sebagai gantinya, tetapi itu harus menjadi pengguna super dan file itu dapat diakses oleh postgres pengguna di server.

Saya percaya bahwa untuk \copy dari nama file variabel, variabel harus disuntikkan ke dalam skrip sebelum psql membacanya. Anda dapat mengintegrasikan skrip SQL ke dalam skrip shell dan memasukkannya ke psql sebagai string di sini yang dapat ditambal, atau filter melalui sed atau perl atau metode unix-ish serupa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan dua kolom tipe timestamp dan integer

  2. Panduan Menggunakan pgBouncer untuk PostgreSQL

  3. Bagaimana saya bisa menggabungkan kolom dari dua tabel menjadi satu output?

  4. Tabel MySQL ke PostgreSQL membuat konversi - rangkaian karakter dan susunan

  5. Node PostgreSQL waktu habis kueri oleh klien