Pl SQL 从数据库目录读取文本文件
Pl SQL reading text file from directory on database
我必须读取在数据库中创建的文本文件。我不确定 UTL_FILE.FOPEN
目录参数的适当路径是什么。我很困惑,因为路径不在我的本地电脑上。
我找到这个文件的路径类似于
\{something here}\winixdb$\{schema here I think}\dev\data
这是我当前的代码。
Declare
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200);
begin
f:= UTL_FILE.FOPEN({path_here}, 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FCLOSE(f);
dbms_output.put_line(s);
end;
现在如果我把确切的路径放在那里就会出错:
ORA-2928: Invalid Directory Path
我试过查看其他资源,但他们谈论的是在您的本地环境中找到的路径。另外,我不太明白你的数据库上的文件的想法。
我想看到这个文件被输出到 DBMS。
您必须先声明您要访问的目录{path_here}
:
CREATE OR REPLACE DIRECTORY MY_PATH_ON_DBMS as '{path_here}';
(如果已经存在,你应该用select * from dba_directories;
找到它)
; make sure oracle
user can read to it on the DBMS;
然后在您的代码中按名称调用它:
Declare
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200);
begin
f:= UTL_FILE.FOPEN('MY_PATH_ON_DBMS', 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FCLOSE(f);
dbms_output.put_line(s);
end;
我必须读取在数据库中创建的文本文件。我不确定 UTL_FILE.FOPEN
目录参数的适当路径是什么。我很困惑,因为路径不在我的本地电脑上。
我找到这个文件的路径类似于
\{something here}\winixdb$\{schema here I think}\dev\data
这是我当前的代码。
Declare
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200);
begin
f:= UTL_FILE.FOPEN({path_here}, 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FCLOSE(f);
dbms_output.put_line(s);
end;
现在如果我把确切的路径放在那里就会出错:
ORA-2928: Invalid Directory Path
我试过查看其他资源,但他们谈论的是在您的本地环境中找到的路径。另外,我不太明白你的数据库上的文件的想法。
我想看到这个文件被输出到 DBMS。
您必须先声明您要访问的目录{path_here}
:
CREATE OR REPLACE DIRECTORY MY_PATH_ON_DBMS as '{path_here}';
(如果已经存在,你应该用select * from dba_directories;
找到它)
; make sure
oracle
user can read to it on the DBMS;
然后在您的代码中按名称调用它:
Declare
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200);
begin
f:= UTL_FILE.FOPEN('MY_PATH_ON_DBMS', 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FCLOSE(f);
dbms_output.put_line(s);
end;