sql - PL/SQL Oracle 目录

标签 sql oracle plsql cmd directory

我正在使用 util_file.fopen 将 .txt 文件导入数据库。但是,我不想对目录进行硬编码。有没有办法将当前目录保存到变量或记录路径?这样我就可以创建一个作为当前目录的 oracle 目录,而 util_file.fopen 将始终打开我运行 pl/sql 的目录中的 .txt 文件

我知道“HOST CD”会显示我的当前目录,但我无法将它保存到变量或记录它

谢谢

最佳答案

创建多个目录对象:

CREATE DIRECTORY DIRECTORY_1 AS '/some/path';
CREATE DIRECTORY DIRECTORY_2 AS '/some/other/path';
CREATE DIRECTORY DIRECTORY_3 AS '/yet/another/path';

将目录名赋给一个变量:

strDirectory_to_use := 'DIRECTORY_1';

打开文件时使用变量:

-- References /some/path/filename.txt
aFile := UTL_FILE.FOPEN(strDirectory_to_use, 'filename.txt', 'r');

更改变量以包含不同目录对象的名称:

strDirectory_to_use := 'DIRECTORY_2';

现在,当您在调用 UTL_FILE.FOPEN 时使用该变量,它将查看目录对象 DIRECTORY_2 指向的目录:

-- References /some/other/path/filename.txt
aFile := UTL_FILE.FOPEN(strDirectory_to_use, 'filename.txt', 'r');

祝你好运。

关于sql - PL/SQL Oracle 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471427/

相关文章:

sql - 有没有一种快速方法来检查任何列是否为 NULL?

sql - 如何在 Oracle 中通过 XPath 获取第一个元素

如果值不存在,oracle 从表中选择

sql - 如何将 db 对象数据类型从 varchar 更改为 nvarchar 而不默认为 null?

sql - 检查数据库中是否存在记录时出现 Linq To Entity 错误

mysql - 链接 SQL 查询

数据库数据差异工具,用于比较不同数据库中公用表中的数据

sql - Oracle SQL中的“YYYY”和“RRRR”有什么区别

Oracle PL/SQL 获取服务器的 IP v4?

oracle - 如何根据表 FK 关系在 PL/SQL 中生成 DELETE 语句?