Odmowa dostępu do pliku podczas próby importu


18

Kiedy próbuję użyć \ina pliku, który nie jest w psql.exe folderu mówi C:: permission denied. Na przykład mam plik z poleceniem SQL at C:\Users\Work\Desktop\School Work\load_database.sqli kiedy piszę \i "C:\Users\Work\Desktop\School Work\load_database.sql", mówi C:: permission denied. Jak mogę to naprawić?

Znalazłem pracę wokół tutaj gdzie skopiować plik .sql do tego samego folderu jako psql.exe jest.

Nawiasem mówiąc, czy \ oznacza import?

Odpowiedzi:


34

Właśnie natrafiłeś na osobliwość psqlsystemu Windows.

W moim komentarzu chciałem po prostu wykluczyć możliwość, że tak naprawdę nie masz niezbędnego pozwolenia. Potem okazało się, że nawet w systemie Windows trzeba używać „normalnych” ukośników zamiast odwrotnych ukośników, to znaczy:

\i 'C:/Users/Work/Desktop/School Work/load_database.sql'

powinien działać dobrze bez względu na to, od którego folderu zaczniesz psql. Zauważ, że użyłem pojedynczych cudzysłowów - z podwójnymi

"C:/Users/Work/Desktop/School Work/load_database.sql": Invalid argument

Mam to, dzieki. Skąd wiedziałeś, że używasz pojedynczych, a nie podwójnych cudzysłowów? Czy to ogólna zasada dla postgresów, czy jaka jest różnica?
Celeritas,

1
@Celeritas Myślę, że jest to wynik konfliktu tego, w jaki sposób Windows używa podwójnych cudzysłowów w ścieżkach i jak psql(i PostgreSQL) używają go w identyfikatorach.
dezso

Ta praca didn't dla mnie w Windows 10, ukośniki i wszystkim odpowiedź user68006 męska zrobił, choć
Scaramouche

1
@Scaramouche dzięki za opinie! Najwyraźniej nie wszystkie odrzucone uprawnienia są sobie równe.
dezso

6

Umieść plik w jakimś katalogu z pełnym uprawnieniem dla wszystkich, na przykład „c: \ tmp”

LUB

Ustaw uprawnienia do odczytu pliku, który chcesz zaimportować.

Umożliwiam czytanie „Wszystkim”.

Po zaimportowaniu pliku możesz cofnąć to uprawnienie.

właściwości pliku systemu Windows

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.