Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Oracle PL/SQL修改文本文件

用Oracle PL/SQL修改文本文件
EN

Database Administration用户
提问于 2014-08-01 05:55:43
回答 1查看 4.7K关注 0票数 2

我试图用以下过程打开并替换文本文件中的字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BEGIN
v_file_name := 'text_file.txt';
v_filehandle := utl_file.fopen(v_file_dir, v_file_name, 'W');
v_id_nextval := v_id_nextval + 1;
BEGIN
LOOP
    utl_file.get_line(v_filehandle, v_new_line);
    v_new_line := replace(v_new_line, 30690, v_id_nextval);
    EXIT WHEN v_new_line IS NULL;
  END LOOP;
END;
utl_file.fclose(v_filehandle);

问题是,在运行此过程后,文本文件将变为空。如果我将“W”替换为“R”,则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
v_filehandle := utl_file.fopen(v_file_dir, v_file_name, 'W');

变量的值被正确替换,但文本文件中没有任何更改,因为它只有读取访问权限。

我是做错什么了还是根本不可能?

PS:我正在使用Oracle 9i。

致以问候。

EN

回答 1

Database Administration用户

发布于 2014-08-01 06:48:32

是的,“W”会这样做的--替换文件。用'A‘来追加。我认为您不能“就地修改”;您可能需要将文件复制到一个新的文件中,进行您想要的更改,删除原始文件,然后重命名该副本。

所有这些都回避了一个问题,为什么您要尝试在PL/SQL中完成所有这些工作。在用Python编写的外部程序中进行调用可能会更好一些--当然更容易一些。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/72941

复制
相关文章

相似问题

Oracle PL/SQL tns异常处理

30

Oracle PL/SQL查找最近的对象

10

Oracle PL/SQL:触发器语法

10

从oracle pl sql游标中提取值。

10

停止PL/SQL developer或Oracle SQL Developer中的错误

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文