使用UTL_FILE在oracle中读写文本数据
--以SYS用户创建目录dir_dump,文件就保存在这个目录下
SQL> create directory dir_dump as '/data/cmssdb';
Directory created.
--授权对应的操作帐号读和写的权限,这里是operator
SQL> grant read on directory dir_dump to operator;
Grant succeeded.
SQL> grant write on directory dir_dump to operator;
Grant succeeded.
--以operator用户登陆
SQL> connect operator/operation
Error accessing PRODUCT_USER_PROFILE
Warning: Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.
--创建表BIBI,并加入测试数据
SQL> create table bibi(row_id int,row_name varchar2(10));
Table created.
SQL> insert into bibi values(1,'luochun');
1 row created.
SQL> insert into bibi values(2,'maihy');
1 row created.
SQL> commit;
Commit complete.
/*--该过程负责备份数据到DIR_DUMP目录,名称为bibi.csv
DECLARE lv_file_handle UTL_FILE.file_type;
BEGIN
lv_file_handle := UTL_FILE.FOPEN('DIR_DUMP','bibi.csv','a');
FOR x IN (SELECT ROW_ID,ROW_NAME FROM BIBI) LOOP
UTL_FILE.PUT_LINE(lv_file_handle,x.ROW_ID || ',' || NVL(x.ROW_NAME,''));
END LOOP;
UTL_FILE.FCLOSE(lv_file_handle);
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,200));
END;
/
*/
--过程完成,转到DIR_DUMP目录查看生成的文件,数据已经产生
[oracle@qaserver oracle]$ cd /data/cmssdb
[oracle@qaserver cmssdb]$ cat bibi.csv
1,luochun
2,maihy
/*
--现在删除BIBI数据,准备将备份的导入
SQL> truncate table bibi;
Table truncated.
/*--这个过程负责读取文件,并导入数据
DECLARE lv_file_handle UTL_FILE.file_type;
lv_row_text VARCHAR2(2000);
lv_row_id PLS_INTEGER;
lv_row_name VARCHAR2(50);
BEGIN
lv_file_handle := UTL_FILE.FOPEN('DIR_DUMP','bibi.csv','r');
LOOP
BEGIN
UTL_FILE.GET_LINE(lv_file_handle,lv_row_text);
lv_row_id := SUBSTR(lv_row_text,1,INSTR(lv_row_text,',',1,1) - 1);
lv_row_name := SUBSTR(lv_row_text,INSTR(lv_row_text,',',1,1) + 1);
INSERT INTO BIBI VALUES(lv_row_id,lv_row_name);
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
COMMIT;
UTL_FILE.FCLOSE(lv_file_handle);
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,200));
END;
/
*/
--数据已经产生
SQL> SQL> SELECT * FROM BIBI;
ROW_ID ROW_NAME
---------- --------------------
1 luochun
2 maihy
SQL>
转载于:https://www.cnblogs.com/fenny8/archive/2009/03/16/1412832.html
使用UTL_FILE在oracle中读写文本数据相关推荐
- 《Python Cookbook 3rd》笔记(5.1):读写文本数据
读写文本数据 问题 你需要读写各种不同编码的文本数据,比如 ASCII,UTF-8 或 UTF-16 编码等. 解法 使用带有 rt 模式的 open() 函数读取文本文件(t表示text文本模式,默 ...
- oracle中导入dmp数据注意事项
1.在oracle中导入dmp数据的时候,一般使用exp导出的是带有表结构的数据,这时候导入数据库,如果数据库中有这个表,就会报错,说已经存在这个表,无法创建,这时候imp导入语句中需要加入一句ign ...
- oracle分页数据,在Oracle中得到分页数据
在Oracle中得到分页数据 得到DataSet的值 例子如下: /// /// 得到Colletion分页数据 /// public DataSet GetList(int PageIndex, i ...
- Linux内核中读写文件数据的方法
Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数, ...
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel ...
- 转载 从SRAM中读写一个数据问题——Verilog
从SRAM中读写一个数据问题--Verilog 2009-04-24 14:21 从SRAM中读写一个数据问题--Verilog 操作SRAM(IS63lv1024),向SRAM写入一个数据:并从SR ...
- oracle自动释放表空间,Oracle中关于清除数据和释放表空间
一.表的重命名 flashback table test2 to before drop rename to test3;--[to test3]将表重命名 drop table test3 purg ...
- c 将txt导入oracle,如何把文本数据导入Oracle中?
1.首先,服务器端的侦听服务必须已经开启. 测试方法:Dos 下输入 C:\>sqlplus username/password@serviceName 2.然后使用 Oracle 的 sqll ...
- ZYNQ-使用SD卡读写文本数据
学习内容 本文主要关于SD卡相关内容,然后使用SD卡进行TXT文本读写,并用串口打印出读写数据. 开发环境 vivado 18.3&SDK,PYNQ-Z2开发板. SD卡简介 SD卡(Secu ...
最新文章
- Ctrl+C提示是否终止shell脚本
- AntiXSS - 支持Html同时防止XSS攻击
- java对象比较 hashcode_Java Objects.hash()与自己实现的hashCode()比较
- java实现缓存方式_【Java】【器篇】【缓存】一个轻量的缓存实现方式
- Wireshark和 TcpDump抓包分析心得
- python 最小二乘法_最小二乘法及其python实现详解
- Docker下载与安装(win7,8,10,mac)
- GPUImage使用之stillCamera多滤镜
- python可变参数_Python学习之路:函数传递可变参数与不可变参数,每天学一点点...
- shell 封装方法_反弹shell逃逸基于execve的命令监控(上)
- ArcGIS 安装出现Mircrosoft .NET Framework 3.5 sp1问题的解决方案
- AirPlay、AirTunes 移植开发
- MySQL over函数的用法
- 如何在 Mac 上更改文件夹颜色,改变 mac 文件夹颜色教程
- (JDBC四)JDBC实例(b)
- win10升级到win11教程
- 计组作业【题目记录】
- URL is not registered
- 容器化技术与微服务结合---docker(一)
- csv格式文件如何转换成excel文件