mysql - 使用 shell 脚本从 csv 文件批量复制到 OracleDB

标签 mysql oracle shell csv

我正在尝试编写一个 shell 脚本,该脚本从 csv 文件中获取数据并将其批量复制 (bcp) 到 oracle 数据库。 我可以编写一个 shell 脚本,但不确定 sql bcp 是如何工作的。

请告诉我如何继续

这是脚本的片段

#!/bin/bash
echo "Now processing step: LOAD_"
DB_CONNECT="USER/PASS@TESTDB"
SPOOLFILE=/home/log.txt
echo "Now processing step:" $DB_CONNECT
sqlplus -s ${DB_CONNECT} <<EOF
spool ${SPOOLFILE}
file="/etc/hosts"
if [ -f "$file" ]
  then
echo "$file found."
TRUNCATE TABLE ;
else
echo "$file not found."
fi

假设我的文件是包含以下数据的 csv 文件

1,2,3,4
5,6,7,8
10,11,12,13

谢谢

最佳答案

BCP 是 SQL Server 的东西。

您现在已进入 Oracle 土地。

但是,如果您想使用脚本从 CSV 加载表格,我们确实有一些工具可以帮助您。

SQL*Loader非常适合处理大量数据 - 数百万行,没问题。而且它很灵活,您可以将输入流中的数据定义/映射到表中。它是 Oracle 客户端的一部分 - 因此您的计算机上需要有 $ORACLE_HOME 才能使用它。

如果您有一个 CSV,其中列的匹配顺序与表相同,并且只有几千行,您也可以只 use the LOAD command in SQLcl 。它是 SQL Developer 的一部分(位于/bin 目录中),可以单独下载。您需要一个 JRE 来运行它。

关于mysql - 使用 shell 脚本从 csv 文件批量复制到 OracleDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223020/

相关文章:

oracle - 如何从给定日期获得一个月的最后一天?

SQL:CASE 限制(WHEN、THEN 条件的数量)

mysql - 如何通过命令提示符导入mysql数据库

mysql - 为两个表创建了 TRIGGER 但收到错误消息

sql - PL/SQL 触发器问题

android - 如何引用API的shell命令向API发起POST请求?

linux - 如何让 sed 从标准输入中读取?

linux - centos7我设置了这个脚本开机,重启后服务没有启动起来

php - $_SESSION ['uiD' ] 注册后无法重定向到主页,uiD 未设置

MySQL - 为什么我的 innodb_force_recovery 显示为 "unknown variable"