web-dev-qa-db-ja.com

インポートしようとしているファイルで許可が拒否されました

Psql.exeフォルダーにないファイルで\iを使用しようとすると、C:: permission deniedと表示されます。たとえば、SQLコマンドを含むファイルがC:\Users\Work\Desktop\School Work\load_database.sqlにあり、\i "C:\Users\Work\Desktop\School Work\load_database.sql"と入力するとC:: permission deniedと表示されます。どうすれば修正できますか?

私は回避策を見つけました ここ .sqlファイルをpsql.exeと同じフォルダーにコピーします。

ちなみに \ i はインポートを表していますか?

19
Celeritas

Windowsでpsqlの特殊性に遭遇しました。

私のコメントでは、あなたが本当にに必要な権限を持っていなかった可能性を除外したかっただけです。次に、Windowsでも、バックスラッシュの代わりに「通常の」スラッシュを使用する必要があることがわかりました。

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

psqlをどのフォルダから開始しても、正常に機能するはずです。私が一重引用符を使用したことに注意してください-あなたが得た二重引用符で

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

'c:\ tmp'のように、すべてのユーザーに完全な権限を持つディレクトリにファイルを配置します。

OR

インポートするファイルに読み取り権限を設定します。

「みんな」に閲覧許可を入れます。

ファイルをインポートした後、その権限を取り消すことができます。

windows file properties

6
user68006