Actually, a single quotation will work.
\ir 'C:\\Program Files\\PostgreSQL\\12\\demo-big-en-20170815.sql'
But I don't know why a single quotation will work.
It would be very helpful if you guys can explain to me.
On Mon, Oct 5, 2020 at 9:31 PM Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Adrian Klaver <adrian.klaver@xxxxxxxxxxx> writes:
> On 10/5/20 7:55 AM, Mark wrote:
>> I followed one PostgreSQL tutorial step by step. One session to use PSQL
>> to execute sql files to create a new database in PostgreSQL.
>> 1. copy paste the sql file within "C:\Program Files\PostgreSQL\12"
>> directory.
>> 2. execute the following code \i C:\\Program
>> Files\\PostgreSQL\\12\\demo-big-en-20170815.sql
>>
>> Failed
>> The message shows C:: Permission denied
> The issue is the user you are running psql as does not have permissions
> to read the file. This is a OS permissions thing. Either run psql as a
> user that can read the file or change the permissions on the file to
> those that allow the psql user to read it.
... or more likely, put the SQL file in a saner place. Dropping random
files into a program directory can only lead to trouble. You should
treat such directories as read-only unless you know exactly what you
are doing.
It seems likely to me that this failure stems from PG being installed
with permissions settings that prevent it from reading/modifying its own
executables, which is good solid security practice.
(If the tutorial actually told you to do that, the tutorial's author
is utterly clueless.)
regards, tom lane