sql >> Database >  >> RDS >> PostgreSQL

Geen wachtwoord opgegeven / Positionele parameter niet gevonden PostgreSQL - Powershell

SET is een alias voor Set-Variable , maar Powershell-variabelen zijn geen omgevingsvariabelen. Om een ​​omgevingsvariabele in te stellen, moet u de $env: . gebruiken domein. Probeer:

$env:PGPASSWORD = 'myPwd';

Zie ook hier voor meer informatie over omgevingsvariabelen.

Ik denk ook niet dat je weg kunt komen met het plaatsen van onbewerkte invoer op de opdrachtregel zoals die in PowerShell. Ik denk dat het dingen als afzonderlijke commando's zal behandelen, maar ik kan het mis hebben.

U kunt ook de opdrachtschakelaar gebruiken (-c ) en het PowerShell-symbool voor stoppen met parseren (--% ) wanneer u psql aanroept om te voorkomen dat PowerShell uw opdrachtreeks ontleden:

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

Of stel de commando's in op een variabele met here-strings en pijp die naar psql:

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

Of een tiental andere manieren om een ​​uitvoerbaar bestand aan te roepen.




  1. tel null-items in de databasekolom op een RESTfull-manier

  2. Bewerkingen op onvolledige datums in MYSQL

  3. Verbetering van de efficiëntie van de MySQL-index - kolommen in meerdere indexen?

  4. Aan de slag met Django-kanalen