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

时间: 2024-10-06 02:18:46

PLSQL_PLSQL读写CSV文件方式(案例)的相关文章

python3使用csv模块读写csv文件

python3使用csv模块读写csv文件 读取csv文件: import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("XXX.csv","r",encoding="utf-8") as csvfile: #读取csv文件,返回的是迭代类型 read = csv.reader(csvfile) for i in read: print(i) 存

用opencsv文件读写CSV文件

首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解就进入主题,用Opencsv读写csv文件 读:CSVReader 写:CSVWriter 下面分别来看一下opencsv为我们提供的方法(这里只介绍最常用的几个): 读:CSVReader 构造器中涉及三个参数: reader:就是读取文件的流对象,常用的有BufferedReader,Input

利用JavaCSV API来读写csv文件

http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/ 转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/53423121 1 背景 CSV文件的读写其实是有很多方法的,在这里介绍一种利用第三方jar包来读写CSV文件的方法. 日常工作中,如果有现成的第三方工具包,咱最好还是用现成的,有

C/C++读写csv文件

博客转载自:http://blog.csdn.net/u012234115/article/details/64465398 C++ 读写CSV文件,注意一下格式即可 #include <iostream> #include <string> #include <vector> #include <fstream> #include <sstream> using namespace std; int main() { // 写文件 ofstre

java读写CSV文件

java读写CSV文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 读取csv文件中数据 将数据保存为csv文件格式 读取CSV文件中的数据 import java.io.*; import java.util.ArrayList; import java.util.StringTokenizer; public class readCSV { void readCSV(String readpath, ArrayList Nolist, ArrayList Dnalist

如何通过 JavaCSV 类库来优雅地(偷懒)读写 CSV 文件?

欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人博客: https://www.exception.site/essay/how-to-create-read-csv-by-javacsv 一.背景 小哈公司最近准备开发一套新的平台,具体什么平台,因为涉密,这里就不透露了.平台在最终的的技术选型中,其中主要依赖的技术栈是 Apache Flink, 一款 Apache 基金会开源的流处理框架,平台的核心业务都会交给 Flink 去处理,其中包括离线批量任

支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)

CSV是一种十分简洁的数据结构,在DOTNET平台实际使用中发现微软官方并没有提供默认的方法,而网上好多例子发现实现并不严谨甚至一些含有明显错误,所以后面自己实现了一个读写工具类,这里发出来希望方便后面朋友(难免还是会有考虑不到的地方,可随时邮件联系) 使用该工具可对csv文件进行读写(甚至不用去了解CSV的各种规范) 直接以List<List<string>> 形式输出,方便进一步处理 因为工具类需要读取文件资源读取完毕后如果确认不会再次读取,建议立即Dispose,以释放文件句

python读写csv文件

python自带有csv模块,如果想了解更详细的内容,可以参考官方文档 一.读操作 不知道为什么,要是打开文件时不使用'b'模式,就会有隔行出现,所以,在windows中想要正常操作csv文件,就加上b模式.delimiter来指定reader各个域之间的分隔符. def readData(): with open('csvFile.csv','rb') as fobj: csvFileReader = csv.reader(fobj,delimiter='-'); header = next(

Python-csv模块读写csv文件

import csv # 采用DictReader进行读写: # 读csv文件def get_data(self, from_file): test_data = [] with open(from_file, 'rb') as csv_file: csv.register_dialect('read', delimiter='\t', quoting=csv.QUOTE_NONE) reader = csv.DictReader(csv_file, dialect='read') for ro