将文本文件导入Oracle的存储过程

时间:2015-04-08 20:06:22

标签: oracle text import procedure sql-loader

我有一个文本文件,我必须针对Oracle中的主数据库进行检查,重复一次,每天3次。我过去只会为此创建一个SSIS包,但不幸的是,我现在正在与Oracle打交道,而且我对Oracle知之甚少。我一直在寻找几天,我能想到的最好的解决方案是创建一个Sql Loader,但我无法弄清楚如何将它放在存储过程中。

另外,我的文本文件没有格式化,所以我必须按位置取前两个字段并忽略该行中的其余数据。

任何建议。我感到茫然,任何帮助都将不胜感激。

这是我到目前为止所提出的:

    CREATE TABLE Duplicate_Check 
    (field1 numeric(14), 
    PO numeric (7) Primary Key 
    )

         load data
         infile '\\(file location\.txt'
         into table Duplicate_Check
         (field1 position(1:14),
         PO position(16:22) ) 
        (field1, PO)

2 个答案:

答案 0 :(得分:0)

我会使用oracle UTL_FILE包来读取文件并解析出检查重复项所需的数据。您似乎只需阅读前两行。

该文件必须存在于DB可访问的路径上,并且DBA必须在ACL中设置访问权限。

答案 1 :(得分:0)



<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Demo sử dụng Oracle Objects for OLE (OO4O) với Clasic ASP</title>
	<style type="text/css">
		textarea {
			width: 800px;
			height: 200px
		}
		
		.button {
			width: 120px;
			height: 35px;
			cursor: pointer;
		}
		
		table {
			border: 2px solid #424242;
			border-collapse: collapse;
		}
		
		th, td {
			border: 1px solid #424242;
			border-collapse: collapse;
			padding: 5px;
		}
	</style>
</head>
<body>
    <h2>Demo sử dụng Oracle Objects for OLE (OO4O) với Clasic ASP</h2>
	
	<form action="" method="post">
		<div>
			<h4>Nhập câu lệnh SQL:</h4>
			<textarea name="query">SELECT * FROM Employees WHERE ROWNUM <= 10</textarea>
		<div>
		
		<div>
			<input type="submit" value="Execute SQL" class="button" />
		</div>
	</form>
	
	
</body>
</html>
&#13;
&#13;
&#13;