oracle执行txt文件|求一个oracle读取txt文件的存储过程

A. oracle将表A里的数据导出为txt文件,用存储过程怎么写

分几个步骤

1,创建输出路径,比如你要在c盘test目录下输出,你就先要建立好这个test路径

2,sqlplus下以sysdba登录,执行以下语句

3,create or replace directory TMP as 'c:est';

4,grant read,write on directory TMP to 你要生成文件的用户;

5,alter system set utl_file_dir='c:est' scope=spfile;

以上步骤执行完,需要重启数据库

6,最重要的一步开始了,创建存储过程

createorreplacePROCEDURESP_OUTPUTisfile_handleutl_file.file_type;Write_contentVARCHAR2(1024);Write_file_nameVARCHAR2(50);v_idint;v_formvarchar2(10);cursorcur_sp_outisselectid,formfroma;beginopencur_sp_out;loopfetchcur_sp_outintov_id,v_form;exitwhencur_sp_out%notfound;write_file_name:=to_char(SYSDATE,'YYYYMMDD')||'.txt';file_handle:=utl_file.fopen('TMP',write_file_name,'a');write_content:=v_id||''||v_form;–writefileIFutl_file.is_open(file_handle)THENutl_file.put_line(file_handle,write_content);ENDIF;–closefileutl_file.fclose(file_handle);endloop;closecur_sp_out;end;

我建立了一个跟你一样的测试表,数据如下

createtablea(idint,formvarchar2(10));insertintoavalues(1,'你好');insertintoavalues(2,'你很好');

然后执行存储过程

beginSP_OUTPUT;end;

执行完毕后,你在c盘test路径下会发现已经有新文件生成

存储过程的话,如果表名和字段名跟你一致的话,你无须修改

B. 千万级数据量的txt 是用什么方法导入到oracle数据库中比较快

使用sqlload 很快。一般要达到5000行/秒。在比较苛刻的要求下,要达到8000条/秒。换算成你的1千万行的数据量,大概要半个多小时。 ——注: 上面是在硬件配置比较好的情况下。

C. 求一个oracle读取txt文件的存储过程

只用一次可以用PL/SQL导入,多次使用,存储过程读取文件好像不行,还是写一段java代码来解决吧

D. 如何将oracle中的数据导出成txt,现在要求导出所有表成txt,spool很难实现了,如何脚本实现

其实很简单,使用pl/sql developer 进入oracle,导出查询结果为cvs 文件,然后用记事本打开,然后另存为TXT文件就行了

E. 怎么将txt的数据导入oracle数据库

将文本文件导入Oracle中需要用sqlloader的方式。1、在数据库中创建相应的表。如,文本文件内容为:1234create table test(id int,name varchar2(10),sex varchar2(10));2、在电脑中某路径下编写ctrl文件,以c盘data目录为例,添加如下文本。如,被导入的文件名为load.txt123456load data infile 'load.txt' –被导入文件名replace into table test (id char terminated by ',', name char terminated by ',', sex char terminated by whitespace)编写后,将文件保存成load.ctrl3、然后打开命令提示符,并进入到文本文件和ctrl文件所在目录。4、输入以下语句,并执行。1sqlldr userid=用户名/密码@数据库实例名 control=load.ctl log=load.log5、导入后,test表中数据如下:


赞 (0)