oracle - 将 csv 从 S3 加载到 Oracle
问题描述
我需要将保存在 AWS S3 位置的 csv 文件加载到 Oracle 表中。
我在 Oracle 文档页面(下面提到的代码)中看到了该LOAD DATA
语句,但是没有将数据从 AWS S3 加载到 Oracle 表的选项。有谁知道Oracle中是否有这样做的功能?
LOAD DATA
[LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var
[, col_name_or_user_var] ...)]
[SET col_name={expr | DEFAULT}
[, col_name={expr | DEFAULT}] ...]
解决方案
从我的角度来看,如果你有一个 CSV 文件,那么SQL*Loader是一个可以使用的工具。
它与每个 Oracle 数据库一起安装(因此,如果您可以访问本地服务器,那么您就拥有了它)。更好的是,您可以在自己的 PC 上使用该工具;SQL*Loader 是 Oracle实用程序的一部分,可以从客户端软件安装。或者,如果您在 PC 上安装 Oracle XE (Express Edition),它也包含它。
很快:您将创建一个控制文件,其中指定数据源(您的 CSV 文件)、目标表、您将加载的列等。然后从操作系统命令提示符运行它,就是这样。
SQL*Loader 非常非常快。
另一种选择是使用外部表功能;它的缺点是您必须有权访问数据库服务器(实际上,访问目录 - 指向通常位于数据库服务器上的文件系统目录的 Oracle 对象)。如果您不是 DBA,则必须与其中一位交谈,因为他们必须授予您所需的权限。
如果您使用它,那么您可以从 SQL 访问 CSV 文件,即您可以像查询普通 Oracle 表一样查询该文件并使用例如
insert into target_table (col1, col2, ...)
select col1, col2, ... from csv_file_as_external_table
推荐阅读
- mysql - 如何使用 GROUP BY 和 ORDER BY 跨多个表求和?
- mysql - 主键的 PhpMyAdmin 重复条目
- javascript - 将 2 个字母的国家代码转换为国家名称
- bash - 使用哪些工具列出所有 lineageOS ROM 的定价?
- google-drive-api - Google Drive API,更改 api - 共享文件缺少父字段
- reactjs - Recharts 雷达图上的自定义标签
- c# - 是否可以获得授权的返回或结果?
- php - Woocommerce get_products 返回空对象
- python - 在 Windows 10 中设置 Python 路径以安装第三方 Python 包
- arrays - 对工作表的字符串引用有效,但字符串变量无效