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

Nie podano hasła / Nie znaleziono parametru pozycyjnego PostgreSQL - Powershell

SET jest aliasem dla Set-Variable , ale zmienne Powershell nie są zmiennymi środowiskowymi. Aby ustawić zmienną środowiskową, musisz użyć $env: zakres. Wypróbuj:

$env:PGPASSWORD = 'myPwd';

Zobacz także tutaj aby dowiedzieć się więcej o zmiennych środowiskowych.

Poza tym nie sądzę, że można ujść na sucho, umieszczając surowe dane wejściowe w wierszu poleceń w taki sposób w PowerShell. Myślę, że potraktuje to jako osobne polecenia, ale mogę się mylić.

Możesz także użyć przełącznika poleceń (-c ) i symbol zatrzymania analizowania PowerShell (--% ) po wywołaniu psql, aby uniemożliwić PowerShellowi analizowanie ciągu poleceń:

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

Lub ustaw polecenia na zmienną z here-strings i potoku to do psql:

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

Lub kilkanaście innych sposobów na wywołanie pliku wykonywalnego.




  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 INTERSECT działa w PostgreSQL

  2. aktualizowanie wierszy tabeli w postgresie za pomocą podzapytania

  3. PostgreSQL JDBC getGeneratedKeys zwraca wszystkie kolumny

  4. Usuń obiekty wewnątrz tablic zagnieżdżonych JSONB za pomocą PostgreSQL

  5. Aktualizacje pola JSON nie są zachowywane w DB