`

UTL_FILE导出导入数据

 
阅读更多
--以SYS用户创建目录dir_dump,文件就保存在这个目录下
SQL> create or replace directory dir_dump as '/data/cmssdb';--windows:'F:\app'

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>

 参考:http://www.blogjava.net/sterning/archive/2009/01/10/250793.html

分享到:
评论

相关推荐

    utl_file包介绍

    UTL_FILE 包的应用场景非常广泛,包括生成报表、数据导出、数据导入等等。在实际应用中,UTL_FILE 包可以帮助开发者快速、高效地实现文件操作,提高开发效率和数据处理能力。 UTL_FILE 包是 Oracle 提供的一个功能...

    在oracle9i中设置utl_file_dir参数.txt

    这对于数据备份、日志记录、数据导入导出等场景非常有用。 ### 二、在Oracle 9i中设置`UTL_FILE_DIR`参数的步骤 在Oracle 9i中,`UTL_FILE_DIR`参数不能通过`ALTER SYSTEM`语句实时修改,它必须在数据库实例启动时...

    Oracle数据库中业务数据文本导出.pdf

    UTL_FILE包则可以在服务器端直接生成文本文件,减少了不必要的网络传输,并且生成的文件更加纯净,适合后续的数据导入操作。 使用UTL_FILE包之前,必须确保用户拥有执行该包的权限。这通常需要数据库管理员以SYS...

    Oracle数据库通过UTL—FILE实现磁盘文件操作.pdf

    - 例如,我们可以使用UTL_FILE将Person表的数据导出为Excel格式的文件。首先,我们需要在数据库中创建一个目录对象(如`EXP_DIR`),指定为磁盘上的实际路径,并赋予用户相应的读写权限。 - 接着,编写PL/SQL代码...

    oracle自动导出csv

    CSV(Comma Separated Values)文件格式则是一种通用的数据交换格式,适用于不同系统间的数据导入导出。本教程将详细介绍如何自动从Oracle数据库导出数据到CSV文件。 首先,我们来看`get_data.sql`文件,这通常是一...

    plsql培训PPT

    这个包在数据导入导出、日志记录、配置文件管理等方面非常有用。 1. **打开文件**:使用UTL_FILE.FOPEN函数打开文件,指定文件名、目录、模式(读、写或追加)。 2. **读取文件**:UTL_FILE.GET_LINE和UTL_FILE....

    Oracle SQL Loader的详细语法

    - **使用 PL/SQL 包 UTL_FILE 导出数据** ```sql DECLARE fp UTL_FILE.FILE_TYPE; BEGIN fp := UTL_FILE.FOPEN('c:\oradata', 'tab1.txt', 'w'); UTL_FILE.PUT(fp, '%s,%s', 'TextField', 55); UTL_FILE....

    Oracle存储过程读写文件[文].pdf

    通过这种方式,Oracle存储过程可以轻松地将数据库中的数据导出到文件,或者将文件中的数据导入到数据库中,为数据交换提供了便利。 总之,Oracle的存储过程结合UTL_FILE包,能够实现对文件系统的直接操作,增强了...

    Oracle表数据和xml文件间相互导入导出的PL.docx

    在Oracle数据库环境中,将XML文件的数据导入到表中或从表中导出为XML文件是常见的数据交换操作。本文将详细介绍如何使用PL/SQL来实现这个过程。 首先,我们需要了解XML文件的结构。例如,给出的XML文件包含了若干个...

    通过PLSQL的进行oracle数据库导入导出

    - **BLOB数据**:BLOB用于存储二进制大数据,可以使用`UTL_FILE`包或`DBMS_LOB`包的函数将BLOB内容写入文件,然后在目标数据库中读取并插入。 ### CLOB和BLOB的处理方法 1. **CLOB导出**:创建存储过程,将CLOB...

    Plsql操作excel.pdf

    总结来说,通过结合使用Oracle的UTL_FILE包和Java存储过程(利用Apache POI),可以在金融商贸领域实现对Excel数据的高级操作,如数据导入导出、报表生成和分析,同时保持与数据库的紧密集成。这种方法对于处理大量...

    Oracle高级应用

    通过这种方式,可以有效地将文本文件中的数据批量导入到Oracle数据库中,提高了数据处理的效率和准确性。 总结,Oracle高级应用涵盖了许多强大的工具和技术,如SQL*Loader和PL/SQL文件操作,它们能够帮助数据库管理...

    Oracle数据库文件的导入导出

    对于复杂的需求,开发人员可以通过编写PL/SQL程序,调用DBMS_LOB、UTL_FILE等包进行自定义的数据导入导出。 总之,Oracle数据库的导入导出有多种途径,选择哪种方法取决于数据量、性能需求、安全性以及是否需要保持...

    PL/SQL ExcelDocumentType

    描述中虽然没有提供具体信息,但通过博文链接我们可以推测这篇博客可能提供了一些实用的方法或示例,教读者如何在PL/SQL中处理Excel文件,可能是为了数据导入导出、报表生成或者数据分析等目的。 标签“源码 工具”...

    Oracle和Access表之间的导入和导出

    - **使用PL/SQL**:在Oracle环境中编写PL/SQL程序,调用DBMS_LOB或UTL_FILE包来读取Access文件,再将数据插入Oracle表。 - **ODBC或JDBC**:同样可以配置Access的ODBC数据源,或者使用Java的JDBC驱动,编写程序...

    sqlload 文档

    - **导入时数据转换**: 在导入数据时可以直接对数据进行转换处理,例如: ```sql load data infile '*' into table modified_data ( rec_no "my_db_sequence.nextval", ... ) ``` 通过以上介绍,可以看出 ...

Global site tag (gtag.js) - Google Analytics