shell脚本导入文件到oracle
时间: 2023-11-07 16:11:58 浏览: 233
以下是一个简单的shell脚本示例,可以将一个文本文件导入到Oracle数据库表中。在脚本中,需要修改数据库连接信息、文件路径和表名等参数。
```shell
#!/bin/bash
# 数据库连接信息
ORACLE_USER=user_name
ORACLE_PASSWORD=password
ORACLE_HOST=host_name
ORACLE_PORT=port_number
ORACLE_SID=oracle_sid
# 文件路径和表名
FILE_PATH=/path/to/file.txt
TABLE_NAME=table_name
# 导入文件到Oracle表
sqlplus -s $ORACLE_USER/$ORACLE_PASSWORD@$ORACLE_HOST:$ORACLE_PORT/$ORACLE_SID <<EOF
SET FEEDBACK OFF
SET LINESIZE 1000
SET TRIMOUT ON
SET TRIMSPOOL ON
SET SERVEROUTPUT ON SIZE UNLIMITED
SET DEFINE OFF
-- 创建临时表
CREATE GLOBAL TEMPORARY TABLE temp_table (
col1 VARCHAR2(100),
col2 VARCHAR2(100),
col3 VARCHAR2(100)
) ON COMMIT PRESERVE ROWS;
-- 导入数据到临时表
LOAD DATA INFILE '$FILE_PATH'
APPEND INTO TABLE temp_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS;
-- 插入临时表数据到目标表
INSERT INTO $TABLE_NAME (col1, col2, col3)
SELECT col1, col2, col3 FROM temp_table;
-- 删除临时表
DROP TABLE temp_table;
COMMIT;
EXIT;
EOF
```
该脚本使用sqlplus命令连接到Oracle数据库,并执行以下操作:
1. 创建一个临时表temp_table,用于导入文件数据。
2. 使用LOAD DATA INFILE命令将文件数据导入到临时表中。
3. 从临时表中选择数据,并插入到目标表$table_name中。
4. 删除临时表temp_table。
5. 提交事务并退出sqlplus。