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


16

\ipsql.exeフォルダーにないファイルで使用しようとすると、それは言い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。どうすれば修正できますか?

私の周りの仕事見つけ、ここ psql.exeがでているとあなたは同じフォルダに.sqlファイルをコピーします。

ところで、\ iはインポートの略ですか?

回答:


30

psqlWindowsの特殊性に遭遇しました。

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

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

どのフォルダpsqlから開始しても問題なく動作するはずです。一重引用符を使用していることに注意してください-二重引用符で

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

了解、ありがとう。二重引用符ではなく一重引用符を使用することをどのように知りましたか?それはpostgresの一般的なルールですか、それとも違いは何ですか?
セレリタス

1
@Celeritasこれは、Windowsがパスで二重引用符をpsql使用する方法と、識別子でそれを使用する方法(およびPostgreSQL)の競合の結果だと思います。
dezso

このdidn'tのwindows10、スラッシュで私のための仕事とすべて、user68006の答えはなかった、しかし
Scaramouche

1
@Scaramoucheフィードバックをありがとう!明らかに、拒否されたすべての許可が等しく作成されるわけではありません。
dezso

6

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

または

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

「全員」の読み取り許可を設定します。

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

Windowsファイルのプロパティ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.