我正在尝试编写一个 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/