此问题已在此处有答案:
sql oracle - import text file(1个答案)
6天前关闭
有没有一种方法可以将数据从平面文件加载到Oracle表中。我使用下面的python代码,但文件太大,脚本在一段时间后停止(由于丢失数据库连接)。
from tqdm import tqdm
insert_sty = "insert into MRSTY (CUI,TUI,STN,STY,ATUI,CVF) values (:0,:1,:2,:3,:4,:5)"
records=[]
file_path = "../umls_files/umls-2023AA-metathesaurus-full/2023AA/META/MRSTY.RRF"
num_lines = sum(1 for line in open(file_path))
with open(file_path, 'r') as f:
for line in tqdm(f, total=num_lines, desc="Processing file"):
line = line.strip()
records.append(line.split("|"))
for sublist in records:
if sublist:
sublist.pop()
for i in tqdm(records, desc="Inserting records"):
try:
cur.execute(insert_sty,i)
print ("record inserted")
except Exception as e:
print (i)
print("Error: ",str(e))
conn.commit()
1条答案
按热度按时间yjghlzjz1#
如果您使用Oracle,我建议使用SQL*Loader。它是加载数据的实用程序 * 真的,真的很快 *。
简单地说,它是如何工作的:
sqlldr
可执行文件来完成的查看here的简短概述。
P.S.忘了说:如果您发布了表描述并提供了几行示例数据,我们可以帮助编写控制文件并演示它是如何工作的。