sql >> Databáze >  >> RDS >> PostgreSQL

Proč nemohu použít proměnnou v příkazu zpětného lomítka postgres (\COPY)

Obecně platí, že substituce proměnných funguje s meta-příkazy (počínaje zpětným lomítkem), ale \copy je výjimkou, jak je zdokumentováno na manuálové stránce psql :

Nesouhlasím s komentářem @BaconBits k otázce, že plpgsql EXECUTE by mohla být odpověď. Příkaz na straně serveru, dynamický nebo jiný, nebude mít přístup k systému souborů na straně klienta, na rozdíl od \copy . Můžete použít COPY místo toho, ale vyžaduje to být superuživatel a tento soubor má být přístupný pro postgres uživatele na serveru.

Věřím, že \copy z proměnného názvu souboru, musí být proměnná vložena do skriptu před psql čte to. Skript SQL můžete integrovat do skriptu shellu a vložit jej do psql jako opravitelný řetězec zde nebo jej filtrujte přes sed nebo perl nebo jakoukoli podobnou unixovou metodou.




  1. pomocí funkce implicitního ukládání do mezipaměti ovladače Oracle JDBC

  2. Při vytváření pohledu se generuje chyba ORA-00942

  3. Přidejte parametr data do dotazu Oracle

  4. PDO a MySQL UPDATE ve Foreach Loop