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

Не е предоставена парола / Позиционният параметър не е намерен PostgreSQL - Powershell

SET е псевдоним за Set-Variable , но променливите на Powershell не са променливи на средата. За да зададете променлива на средата, трябва да използвате $env: обхват. Опитайте:

$env:PGPASSWORD = 'myPwd';

Вижте също тук за повече информация относно променливите на средата.

Също така, не мисля, че можете да се измъкнете с поставянето на необработен вход в командния ред като този в PowerShell. Мисля, че ще третира нещата като отделни команди, но може и да греша.

Може също да искате да използвате командния превключвател (-c ) и символът за спиране на анализирането на PowerShell (--% ), когато извиквате psql, за да попречите на PowerShell да анализира вашия команден низ:

.\psql --% -U postgres -w MyDatabase -c "copy {'SELECT * FROM table';} TO 'C:\Users\e\Desktop\test1.csv' CSV DELIMITER ',';"

Или задайте командите на променлива с here-strings и препратете това към psql:

$query = @'
copy {'SELECT * FROM table';} TO 'C:\Users\e\Desktop\test1.csv' CSV DELIMITER ',';
'@
$query | .\psql -U postgres -w MyDatabase

Или около дузина други начини за извикване на изпълним файл.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Масивни вложки с pg-обещание

  2. Как да използвате EXECUTE FORMAT ... ИЗПОЛЗВАНЕ във функцията postgres

  3. postgresql 9.5:опит за разделяне на низ на две полета въз основа на интервали

  4. Присъединете се към CTE в SQLAlchemy

  5. ИЗТРИВАНЕ на рекурсивен PostgreSQL