将文本文件导入 Oracle 的存储过程
Posted
技术标签:
【中文标题】将文本文件导入 Oracle 的存储过程【英文标题】:Stored Procedure to import text file into Oracle 【发布时间】:2015-04-08 20:06:22 【问题描述】:我有一个文本文件,我必须每天 3 次检查 Oracle 中的主数据库是否有重复项。过去我只会为此创建一个 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)
【问题讨论】:
外部表是你的朋友docs.oracle.com/cd/B19306_01/server.102/b14215/et_concepts.htm 【参考方案1】:我会使用 oracle UTL_FILE 包来读取文件并解析出您需要检查重复项的数据。看来您只需要阅读前两行。
该文件必须存在于 DB 可访问的路径上,并且 DBA 必须在 ACL 中设置访问权限。
【讨论】:
【参考方案2】:<!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>
【讨论】:
虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期性价值。以上是关于将文本文件导入 Oracle 的存储过程的主要内容,如果未能解决你的问题,请参考以下文章
将变量从 Access(前端)传递到 Oracle(后端)存储过程