PLSQL_PLSQL读和写CSV文件方式(案例)
2012-01-06 Created By BaoXinjin
一、摘要
读写CSV的方式
1. 写CSV
Step1. 创建测试目录
Step2. 写CSV文件
Step3. 查看CSV文件
2. 读CSV
Step1. 创建测试表
Step2. 读CSV文件
Step3. 查看表
二、写CSV文件
Step1. 创建测试目录
--创建测试目录
CREATE OR REPLACE DIRECTORY bxjcsv AS '/home/oracle/bxjcsv';
--目录权限分配
GRANT READ, WRITE ON DIRECTORY bxjcsv TO public;
Step2. 写CSV文件
DECLARE
f_emp UTL_FILE.FILE_TYPE;
CURSOR cur_emp
IS
SELECT first_name,last_name,email,phone_number,salary
FROM HR.EMPLOYEES
WHERE ROWNUM<=10;
rec_emp cur_emp%ROWTYPE;
BEGIN
f_emp :=
UTL_FILE.FOPEN ('BXJCSV','EMP_DEPT.CSV','W',32767);
FOR rec_emp IN cur_emp
LOOP
UTL_FILE.PUT (f_emp, rec_emp.first_name);
UTL_FILE.PUT (f_emp, ',' || rec_emp.last_name);
UTL_FILE.PUT (f_emp, ',' || rec_emp.email);
UTL_FILE.PUT (f_emp, ',' || rec_emp.phone_number);
UTL_FILE.PUT (f_emp, ',' || rec_emp.salary);
UTL_FILE.NEW_LINE (f_emp);
END LOOP;
UTL_FILE.FCLOSE (f_emp);
END;
Step3. 查看CSV文件
三、读CSV文件
Step1. 创建测试表
CREATE TABLE hr.bxj_employees (
first_name VARCHAR2(50),
last_name VARCHAR2(50),
email VARCHAR2(100),
phone_number VARCHAR2(50),
salary NUMBER
)
Step2. 读CSV文件
DECLARE
f_emp UTL_FILE.FILE_TYPE;
v_line VARCHAR2 (1000);
v_first_name hr.bxj_employees.first_name%TYPE;
v_last_name hr.bxj_employees.last_name%TYPE;
v_email hr.bxj_employees.email%TYPE;
v_phone_number hr.bxj_employees.phone_number%TYPE;
v_salary hr.bxj_employees.salary%TYPE;
BEGIN
f_emp := UTL_FILE.FOPEN ('BXJCSV', 'EMP_DEPT.CSV', 'R');
IF UTL_FILE.IS_OPEN (f_emp)
THEN
LOOP
BEGIN
UTL_FILE.GET_LINE (f_emp, v_line, 1000);
IF v_line IS NULL
THEN
EXIT;
END IF;
v_first_name := REGEXP_SUBSTR (v_line,'[^,]+',1,1);
v_last_name := REGEXP_SUBSTR (v_line,'[^,]+',1,2);
v_email := REGEXP_SUBSTR (v_line,'[^,]+',1,3);
v_phone_number := REGEXP_SUBSTR (v_line,'[^,]+',1,4);
v_salary := REGEXP_SUBSTR (v_line,'[^,]+',1,5);
INSERT INTO hr.bxj_employees
VALUES (v_first_name,v_last_name,v_email,v_phone_number,v_salary);
COMMIT;
EXCEPTION WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
END IF;
UTL_FILE.FCLOSE (f_emp);
END;
Step3. 查看表
Thanks and Regards
ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
分类:
[1.1 数据]. PLSQL
标签:
PLSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?