Plsql UTL_FILE.FOPEN()如何声明和分配目录路径?

Plsql UTL_FILE.FOPEN()如何声明和分配目录路径?,plsql,oracle-sqldeveloper,Plsql,Oracle Sqldeveloper,我有这段代码来使用toad从Oracle数据库中提取图像,但在声明提取后保存图像的目录时,我遇到了挑战。我希望这些图像保存在本地计算机的C:\images\a文件夹中。这是否可能,或者我应该如何指定目录 当我执行代码时,得到的文件操作无效 您应该使用目录对象 create or replace directory my_dir as 'c:\Images\'; declare v_dir varchar2(10) := 'MY_DIR'; ..... begin .... t_output :

我有这段代码来使用toad从Oracle数据库中提取图像,但在声明提取后保存图像的目录时,我遇到了挑战。我希望这些图像保存在本地计算机的C:\images\a文件夹中。这是否可能,或者我应该如何指定目录

当我执行代码时,得到的文件操作无效


您应该使用目录对象

create or replace directory my_dir as 'c:\Images\';

declare
v_dir varchar2(10) := 'MY_DIR';
.....
begin
....
t_output := utl_file.fopen(v_dir, t_file_name, 'wb', 32760);
....

首先要知道,当您执行任何处理文件的PL/SQL脚本时,它总是在运行oracle实例的服务器范围内执行

在这种情况下,路径C:\Image\必须存在于Oracle运行的服务器上


您可以使用的一种策略是将脚本执行到服务器的文件夹中,然后通过终端/控制台上的Copy命令获取文件夹数据。

可能会复制客户端的本地计算机或数据库的本地计算机?只有当脚本在Oracle实例运行的同一台计算机上运行时,这才有效。非常感谢,我已将代码添加到我的初始代码中,但现在收到此错误09:31:28错误:ORA-00911:无效字符可能是什么问题?
create or replace directory my_dir as 'c:\Images\';

declare
v_dir varchar2(10) := 'MY_DIR';
.....
begin
....
t_output := utl_file.fopen(v_dir, t_file_name, 'wb', 32760);
....