求助如何在sqlplus下用命令导入一个文本文件!

[复制链接]
查看11 | 回复6 | 2006-12-3 01:01:53 | 显示全部楼层 |阅读模式
小弟向在2000 server下用电脑自带的计划任务定是执行splplus命令将机器上的文本导入到本机上的数据库里面,请各位哥哥告诉我该如何操作或者编写呗!谢谢!
另外怎么能够用dos命令获取当前的文件日期和时间付给一个变量啊!谢谢
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
1
PROCEDURE READ_FILE (iv_file_pathIN VARCHAR2,

iv_file_nameIN VARCHAR2 )
IS
lv_file_path VARCHAR2(100);
lv_file_name VARCHAR2(100);
l_file_handleUTL_FILE.FILE_TYPE;
lv_line_bufVARCHAR2(4000);
ln_loader_countNUMBER := 0;

BEGIN
l_file_handle := UTL_FILE.FOPEN(lv_file_path, lv_file_name, 'r');
LOOP
---------------------------
--Get you data line by line
---------------------------
UTL_FILE.GET_LINE(l_file_handle, lv_line_buf);

ln_read_count := ln_read_count + 1;
IF lv_line_buf IS NULL THEN

---- Ìø¹ý¿ÕÐÐ

GOTO END_LOOP;
-----------------------------
---- È¥³ýÊý¾ÝÐÐ×îºóµÄ»Ø³µ·ûºÅ
-----------------------------
IF ASCII(SUBSTR(lv_line_buf,-1,1)) IN (10,13) THEN
lv_line_buf := SUBSTR(lv_line_buf, 1, LENGTH(lv_line_buf)-1);
END IF;
--------------------------------------
--Add code here to deal with your data
--------------------------------------
null;
>
END LOOP;
UTL_FILE.FCLOSE(l_file_handle);
EXCEPTION
WHEN NO_DATA_FOUND THEN
UTL_FILE.FCLOSE(l_file_handle);
NULL;
WHEN OTHERS THEN
UTL_FILE.FCLOSE(l_file_handle);
ROLLBACK;
END;
-----------------------------------------------------
2.
date /t >>test.txt
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
没看懂!不好意思能详细说明一下么
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
好像应该用 spool 具体用法google一下吧没有例子
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
sqlldr
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
第一个过程,你可以在sql里调用,参数是你的文件路径和文件名称。这个过程是分行读取你的文件。在中间的loop里,每读取一行,可以进行一次处理。这就随自己的意思了。
第二个就是简单的dos命令, date /t是展示时间>> 是管道命令。表示把展示的结果存储到test.txt文件中。文件的名字可以自己定义。test.txt是我随意写的
回复

使用道具 举报

千问 | 2006-12-3 01:01:53 | 显示全部楼层
谢谢已经可以了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行