sql脚本linux中怎么生效,Linux系统下shell脚本中执行sql

怎么在shell脚本中执行sql?

怎么把sql编程shell脚本放在服务器上自动跑数?

请看正文~

1.Oracle的常用set命令

Oracle的常用set命令:

set pagesize 0 #输出每页行数,缺省为24,为了避免分页,可设定为0。

set linesize 2000 #输出一行字符个数,缺省为80

set head off #数据库查询结果中不显示列标题,而是以空白行代替,也就是不显示字段名了

set termout off #去除标准输出每行的拖尾空格,缺省为off

set trims on #去掉空字符

set trim on #查询结果既显示于假脱机文件中,又在SQLPLUS中显示;

set feed off # 同set feedback off,显示数量 当查询选择至少n条记录时,查询返回的记录。

set newpage 0;#设置页与页之间的分隔。0时,会在每页的开头有一个小的黑方框;n时,会在页版和页之间隔着n个空行

set space 0; #设置各列间的空格数,默认不用设置、不用写此参数

set line 1000; #设置行的长度

set echo off; #显示start启动的脚本中的每个sql命令,缺省为on

set feedback off; #默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈

set feedback on; #设置显示“已选择XX行”

set heading off; #输出域标题,缺省为on;不显示表头信息

set term off; #查询结果仅仅显示于假脱机文件中

set termout off; #不在屏幕上显示结果

set trimout on; #每一显示行的末端去掉空格

set trimspool on; #去除重定向(spool)输出每行的拖尾空格,缺省为off

set timing off; #显示每条sql命令的耗时,缺省为off

set timing on; #设置显示“已用时间:XXXX”

set time on; #设置显示当前时间

set trimout on; #去除标准输出每行的拖尾空格,缺省为off

set autotrace on; #设置允许对执行的sql进行分析

set colsep‘ ‘; #设置分隔符为空格

set numwidth 12; #输出number类型域长度,缺省为10

set serveroutput on; #设置允许显示输出类似dbms_output

set verify off; #可以关闭和打开提示确认信息old 1和new 1的显示.

spool 路径+文件名   #记录数据到路径+文件名

select ... from tablename; #导出数据SQL语句

spool off #收集完毕

2. 一个例子

例子:

#设置执行编码格式,防止导出中文时出现乱码

export ORACLE_HOME=/oracle/product/10.2.0/db_1

export NLS_LANG=‘SIMPLIFIED CHINESE_CHINA.ZHS16GBK‘

a=`date +%Y%m%d%H%M%S`

b=`date +%Y%m%d`

filename1=lp_0304_$b.xls

echo "begin time:"`date +%Y%m%d%H%M%S` >> /服务器上的log目录路径/lp_0304_$a.log

SQL1=`sqlplus -s [email protected]>/dev/null << END

set pagesize 0

set linesize 2000

set head off

set termout off

set trims on

set trim on

set feed off

......sql

spool $filename1

select ‘序号‘||chr(9)||‘号码‘‘ from dual

union all

select /*+ parallel(a,12)*/

a.id||chr(9)||

a.serial_number

from lp_0304_4 a;

spool off

/

exit;

END`

echo "end time:"`date +%Y%m%d%H%M%S` >> /服务器日志目录/lp0304_$a.log

mv $filename1 /服务器文件目录/file/

可以用下面语句代替上面的某些部分,输出的文件显示不太一样,上面的语句生成的文件字段之间只有一个空格,且会有表头的字段名;下面的语句生成的文件字段之间会有很多空格,且没有字段名:

SET NEWPAGE 0; #设置页与页之间的分隔。

SET SPACE 0; #设置各列间的空格数

SET LINESIZE 2000; #输出一行字符个数,缺省为80

SET PAGESIZE 0; #输出每页行数,缺省为24,为了避免分页,可设定为0。

SET ECHO OFF; #显示start启动的脚本中的每个sql命令,缺省为on

SET FEEDBACK OFF;#默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈

SET HEADING OFF; #输出域标题,缺省为on;不显示表头信息

SET TERM OFF; #查询结果仅仅显示于假脱机文件中

SET TRIMSPOOL ON; #去除重定向(spool)输出每行的拖尾空格,缺省为off

SET TIMING OFF; #显示每条sql命令的耗时,缺省为off

spool /目录/文件名.txt

......SQL语句......

spool off;

原文:https://www.cnblogs.com/lpeng94/p/12780790.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值