如何将数据从单个csv/excel文件传输到多个oracle表

如何将数据从单个csv/excel文件传输到多个oracle表,excel,csv,plsql,oracle11g,Excel,Csv,Plsql,Oracle11g,我有一个excel文件,有15列和1000条记录。我想将这些数据加载到3个不同的oracle表中 我们怎样才能做到这一点? 我应该先将文件转换为csv吗 此外,这项任务还有一个复杂性。在插入到表之前,我需要执行一些验证,例如。 我在excel中有一列a我想使用列a从Oracle表(如“tab”)中导出值B,然后将B存储在表“tab”中。通常,使用SQL处理原始数据更容易,因此第一步是以最简单的方式获取可查询的原始数据 最简单的解决方案是使用外部表格。将Excel电子表格转换为CSV文件,然后定义

我有一个excel文件,有15列和1000条记录。我想将这些数据加载到3个不同的oracle表中

我们怎样才能做到这一点? 我应该先将文件转换为csv吗

此外,这项任务还有一个复杂性。在插入到表之前,我需要执行一些验证,例如。
我在excel中有一列a我想使用列a从Oracle表(如“tab”)中导出值B,然后将B存储在表“tab”中。

通常,使用SQL处理原始数据更容易,因此第一步是以最简单的方式获取可查询的原始数据

最简单的解决方案是使用外部表格。将Excel电子表格转换为CSV文件,然后定义一个外部表以查询该文件。然后你可以用

 INSERT INTO << table1 >> (...)
 SELECT what_ever  FROM << external_table >>
插入到>(…)
从中选择所需内容>
。。。甚至

INSERT ALL
    INTO << table1 >> (...)
    INTO << table2 >> (...)
    INTO << table3 >> (...)
SELECT *  FROM << external_table >>
全部插入
进入(…)
进入(…)
进入(…)
选择*FROM>
。。。取决于您需要应用的规则

如果您的组织已经使用了外部表,那么这应该很容易配置。但是,有些地方允许数据库与操作系统文件交互很有趣,因此您可能无法使用这种方法

或者,您可以构建一个与CSV文件匹配的暂存表,并使用SQL*Loader将数据加载到该表中。SQL*loader是一个客户端工具,因此使用它需要较少的权限


如果您根本不想构建任何新结构,那么可以编辑CSV文件以形成一组来自DUAL(使用UNION all)的SELECT语句,并从该语句插入到目标表中。掌握正则表达式真的可以帮助完成类似的任务。

如果这是一项常规活动, 使用SQLLDR-sqlloader将原始数据加载到临时表中。
使用将数据从暂存表转换到主表所需的业务逻辑编写一个存储过程

找到这个吗@yongsup-这个答案与将数据导出到CSV有关。这个问题是关于导入数据的。您可以使用sqlldr将一个文件中的数据加载到3个表中,只要每行上都有一个标识符来标识该行指向哪个表。如果它位于行的开头,则更好。您需要先导出到csv。显示所有类型的一些实际数据行,但如果有,则更改个人数据。相同的数据是否会发送到3个不同的表中?请出示一些样本数据。