gpt4 book ai didi

database - PL/SQL : UTL_FILE. FOPEN 这将在客户端或服务器端打开文件

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:32 28 4
gpt4 key购买 nike

本题是在PL/SQL中执行UTL_FILE.FOPEN命令。

UTL_FILE.FOPEN 是在客户端还是服务器端打开文件?

假设我在我的机器 A 上运行 Oracle 客户端 10,我正在连接机器 B(即服务器)。

当我通过 Java 应用程序在机器 A 中执行以下存储过程时,

DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler := UTL_FILE.FOPEN('/app/dir', 'test.txt', 'W');
UTL_FILE.PUTF(fileHandler, 'Writing TO a file\n');
UTL_FILE.FCLOSE(fileHandler);
END;
/

问题是目录 /app/dir 应该在机器 A(客户端)或机器 B(服务器)中

最佳答案

utl_file.fopen

只会打开 DBA 设置的目录中的文件,并且这些目录位于数据库所在的同一台服务器上。 MachineB 在你的问题中。和。您无法访问任何您想要的旧目录。

DBA 可以通过两种方式控制它 - init.ora 参数 utl_file_dir 或通过创建目录对象。

查看utl_file_dir如果可以从V$PARAMETERS中选择试试

select value 
from v$parameters
where name='utl_file_dir';

要查看您可以在 pl/sql 中访问的目录对象:

SELECT owner, directory_name, directory_path
FROM all_directories;

这是两个不同的东西。 utl_file_dir 是一个旧功能,目录对象较新。

关于database - PL/SQL : UTL_FILE. FOPEN 这将在客户端或服务器端打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13583330/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com