我正在尝试编写一个shell脚本,它从csv文件中获取数据并将其批量复制(bcp)到oracle db。 我可以写一个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
由于
答案 0 :(得分:1)
BCP是一个SQL Server的东西。
你现在在甲骨文的土地上。
但是,如果您想使用脚本从CSV加载表格,我们会提供一些可以帮助您的工具。
SQL*Loader非常适合做大量数据 - 数百万行,没问题。它非常灵活,您可以将输入流中的数据定义/映射到表中。它是Oracle客户端的一部分 - 因此您需要在计算机上使用$ ORACLE_HOME才能使用它。
如果你有一个CSV,其列的匹配顺序与表格相同,而且它只有几千行,你也可以use the LOAD command in SQLcl。它是SQL Developer的一部分(在/ bin目录中),它可以单独下载。你需要一个JRE才能运行它。
答案 1 :(得分:0)
我不确定在说“批量复制”时你究竟意味着什么,但可能你应该使用Oracle SQL * Loader。它是批量加载到Oracle DB中的标准工具,它也可以与CSV文件一起使用。
文档:https://docs.oracle.com/database/122/SUTIL/oracle-sql-loader.htm#SUTIL3311