加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell脚本+执行数据库sql

发布时间:2020-12-15 16:32:16 所属栏目:安全 来源:网络整理
导读:使用shell脚本执行sql语句: sqlplus classpath系统环境变量预配置、Oracle tnsnames.ora配置 1、配置sql服务器环境:tnsnames.ora: (../product/version/Client/network/admin) 在tnsname.ora文件中,配置服务器映射: ENV_DESTINATION = (DESCRIPTION = (A

使用shell脚本执行sql语句:

sqlplus classpath系统环境变量预配置、Oracle tnsnames.ora配置

1、配置sql服务器环境:tnsnames.ora: (../product/version/Client/network/admin)

在tnsname.ora文件中,配置服务器映射:

ENV_DESTINATION =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = port))

)

(CONNECT_DATA =

(SERVICE_NAME = server)

)

)

1.sqlplus命令:执行sql文件

例:

sqlplus user/pwd@ENV_DESTINATION@%1test.sql

@参数

%1 第一个命令行参数

该命令执行test.sql中的sql语句

2.copy命令:迁移将sql查询出的结果作为数据源插入当前数据库

COPY FROM user/pwd@ENV_SOURCE INSERT schema1.table1 USING SELECT * FROM schema2.table2;

3.spool命令:export导出数据到指定的目录下C:test.txt ,字段分割规则'<EOFD>'

spool C:test.txt

select TRIM(ID)||'<EOFD>'|| TRIM(ACTION_TYPE)

FROM schema.tablename;

4.sqlldr命令:读取3中导出的数据作为数据源,依据相同的字段分割规则'<EOFD>' ,执行

4.1 预定义规则test.ctl 文件

load data

infile 'C:test.txt '

INSERT

INTO TABLE schem2.tablename2

FIELDS TERMINATED BY '<EOFD>'

trailing nullcols

(ID,NAME char(1000))

4.2 sqlldr命令:执行test.ctl文件

sqlldr user/pwd@ENV_DESTINATION control=%1test.ctl log=%1log1.log bad=%1bad1.log rows=500 parallel=true

另:sql注释符号:-- bat注释符号 rem

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读