使用shell脚本链接Oracle数据库导入表
时间: 2023-10-17 21:13:33 浏览: 100
以下是一个示例脚本,用于连接Oracle数据库并导入表:
```
#!/bin/bash
#设置连接信息
user="username"
password="password"
host="hostname"
port="port"
database="database_name"
#设置导入表信息
schema="schema_name"
table="table_name"
input_file="/path/to/input/file.csv"
#连接数据库并导入表
sqlplus -S $user/$password@$host:$port/$database <<EOF
set feedback off
set verify off
set heading off
set pagesize 0
set linesize 2000
set trimspool on
set echo off
--创建临时表
create table tmp_$table as select * from $schema.$table where 1=2;
--导入数据到临时表
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set colsep ','
set numwidth 38
set trimspool on
set term off
set feedback off
set verify off
set heading off
set pagesize 0
set linesize 32767
set echo off
spool /dev/null
@/path/to/sqlldr.ctl $input_file
spool off
--导入数据到目标表
insert into $schema.$table select * from tmp_$table;
--删除临时表
drop table tmp_$table;
exit;
EOF
```
上面的脚本首先设置了连接信息和导入表的信息。然后,它使用sqlplus命令连接到数据库,并使用SQL语句创建一个临时表。接下来,它使用sqlldr命令将数据从CSV文件加载到临时表中。最后,它使用insert语句将数据从临时表复制到目标表中,并删除临时表。请注意,您需要将脚本中的用户名,密码,主机名,端口号,数据库名称,模式名称,表名称,输入文件路径和sqlldr控制文件路径更改为适合您的环境的值。
阅读全文