我现在需要把一个txt文件数据导入到oracle的一张表中去 请问怎么做;
如:
文本文件里面是
张三,22
李四,25
王五,33
我想把这些信息导入到表里面
表结构:
create table test(
name varchar2(20),
age int
);不用外部命令不用工具怎么弄!!!!!谢谢!
如:
文本文件里面是
张三,22
李四,25
王五,33
我想把这些信息导入到表里面
表结构:
create table test(
name varchar2(20),
age int
);不用外部命令不用工具怎么弄!!!!!谢谢!
解决方案 »
- SQL 中CLOB对象与字符对象的比较
- [緊急]如何在Oracle中通過java存儲過程通知运行在另一台服務器上的application
- 外部表在Oracle数据库中使用心得
- 多行记录变为一行记录的问题
- 怎么在linux操作系统中重启远程oracle服务器的监听器?
- 小问题,麻烦您。(我没分了)
- 如何在Java中存取oracle8i的CLOB字段?(在线等待)
- 关于读ORACLE数据库中的字段出现的问题!!!!我的程序如下
- 问一下有没有人知道oracle7.3.2的客户端哪里有的下载
- 请教大神,如何通过sql语句处理一个具有等价关系的表?
- [求助]sqlserver的语法在oracle实现的困惑
- WHERE FIELD IS NULL 效率问题??
oracle还不知道
1,'C:\Documents and Settings\Administrator'下面的1.txt内容
1202,张三
1202,张四
1201,王八
1202,秦浩
1203,王浩
1202,武平
1203,廖明
1203,田齐
1203,孟子
2 建directory
CREATE OR REPLACE DIRECTORY "DATA_DIR" AS 'C:\Documents and Settings\Administrator'
3 建外部表
CREATE TABLE "SCOTT"."EXT_T"
( "TYPE" NUMBER,
"NAME" VARCHAR2(10)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "DATA_DIR"
ACCESS PARAMETERS
( fields terminated by ',' )
LOCATION
( '1.txt'
)
)
4 是用外部表
SQL> select * from ext_t; TYPE NAME
---------- ----------
1202 张三
1202 张四
1201 王八
1202 秦浩
1203 王浩
1202 武平
1203 廖明
1203 田齐
1203 孟子已选择9行。SQL> select * from t;未选定行SQL> desc t;
名称 是否为空? 类型
----------------------------------------------------- -------- --------------- TYPE NUMBER
NAME VARCHAR2(10)SQL> insert into t select * from ext_t;已创建9行。SQL> select * from t; TYPE NAME
---------- ----------
1202 张三
1202 张四
1201 王八
1202 秦浩
1203 王浩
1202 武平
1203 廖明
1203 田齐
1203 孟子已选择9行。
1,'C:\Documents and Settings\Administrator'下面的1.txt内容
1202,张三
1202,张四
1201,王八
1202,秦浩
1203,王浩
1202,武平
1203,廖明
1203,田齐
1203,孟子
2 建directory
CREATE OR REPLACE DIRECTORY "DATA_DIR" AS 'C:\Documents and Settings\Administrator'
3 建外部表
CREATE TABLE "SCOTT"."EXT_T"
( "TYPE" NUMBER,
"NAME" VARCHAR2(10)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "DATA_DIR"
ACCESS PARAMETERS
( fields terminated by ',' )
LOCATION
( '1.txt'
)
)
4 是用外部表
SQL> select * from ext_t; TYPE NAME
---------- ----------
1202 张三
1202 张四
1201 王八
1202 秦浩
1203 王浩
1202 武平
1203 廖明
1203 田齐
1203 孟子已选择9行。SQL> select * from t;未选定行SQL> desc t;
名称 是否为空? 类型
----------------------------------------------------- -------- --------------- TYPE NUMBER
NAME VARCHAR2(10)SQL> insert into t select * from ext_t;已创建9行。SQL> select * from t; TYPE NAME
---------- ----------
1202 张三
1202 张四
1201 王八
1202 秦浩
1203 王浩
1202 武平
1203 廖明
1203 田齐
1203 孟子已选择9行。
示例:
C:\logs 目录下有文件db_alert.log
里面有内容:'张三,22';
执行过程后:v_temp值为'张三,22';
剩下的楼主可以参考完成.
对于UTL_FILE包的使用可以参考下面这个文章:
http://topic.csdn.net/t/20051212/17/4454609.htmlCREATE OR REPLACE PROCEDURE p_test AS
i NUMBER;
file_handle utl_file.file_type;
write_file_name VARCHAR2(50);
v_temp VARCHAR2(2048);
BEGIN
write_file_name := 'db_alert.log';
file_handle := utl_file.fopen('c:\logs', write_file_name, 'r');
--注意这里的打开文件的方式是'r'
IF utl_file.is_open(file_handle) THEN
utl_file.get_line(file_handle, v_temp);
END IF;
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
BEGIN
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END;