ปฏิเสธสิทธิ์ในการพยายามนำเข้า


17

เมื่อฉันพยายามที่จะใช้\iในไฟล์ที่ไม่อยู่ใน psql.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ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

ฉันพบการทำงานที่นี่ที่คุณคัดลอกไฟล์. sql ไปยังโฟลเดอร์เดียวกันกับ psql.exe

โดยวิธีการที่\ ฉันยืนสำหรับการนำเข้า?

คำตอบ:


33

คุณเพิ่งพบเจอกับความแปลกประหลาดpsqlใน Windows

ในความคิดเห็นของฉันฉันแค่อยากจะรวมเป็นไปได้ว่าคุณจริงๆไม่ได้รับสิทธิ์ที่จำเป็น จากนั้นปรากฏว่าแม้ใน Windows คุณต้องใช้เครื่องหมายทับ 'ปกติ' แทนเครื่องหมายแบ็กสแลชนั่นคือ:

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

ควรทำงานได้ดีไม่ว่าคุณจะเริ่มpsqlจากโฟลเดอร์ไหน สังเกตว่าฉันใช้เครื่องหมายคำพูดเดี่ยว - ด้วยเครื่องหมายคำพูดคู่ที่คุณมี

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

เข้าใจแล้ว คุณรู้จักการใช้คำพูดเดียวและไม่พูดสองคำได้อย่างไร นั่นเป็นกฎทั่วไปสำหรับ postgres หรืออะไรคือความแตกต่าง?
Celeritas

1
@Celeritas ฉันคิดว่ามันเป็นผลมาจากความขัดแย้งของวิธีที่ Windows ใช้เครื่องหมายคำพูดคู่ในพา ธ และวิธีที่psql(และ PostgreSQL) ใช้ในตัวระบุ
dezso

สิ่งนี้ไม่ได้ผลสำหรับฉันใน windows10, เครื่องหมายสแลชและทั้งหมด คำตอบของ user68006ได้แม้ว่า
Scaramouche

1
@caramouche ขอบคุณสำหรับข้อเสนอแนะ! เห็นได้ชัดว่าไม่ได้สร้างการอนุญาตที่ถูกปฏิเสธไม่เท่ากัน
dezso

6

วางไฟล์ในบางไดเรกทอรีด้วยสิทธิ์เต็มที่สำหรับทุกคนเช่น 'c: \ tmp'

หรือ

ตั้งค่าสิทธิ์การอ่านเป็นไฟล์ที่คุณต้องการนำเข้า

ฉันให้สิทธิ์การอ่าน 'ทุกคน'

หลังจากนำเข้าไฟล์คุณสามารถเพิกถอนการอนุญาตดังกล่าวได้

คุณสมบัติของไฟล์ windows

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.