linux创建定时任务,定时执行sql

mac2022-06-30  86

终于弄清楚一个问题了。linux创建定时任务,定时执行sql,其中分为两个case。

case-1 sql语句较少,因此直接在 shell脚本中 写sql语句。如下:

[oracle@Oracle11g scripts]$ cat  add_data.sh#!/bin/bashORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOMEORACLE_SID=prod; export ORACLE_SIDORACLE_UNQNAME=prod; export ORACLE_UNQNAMEORACLE_TERM=xterm; export ORACLE_TERMORACLE_HOSTNAME=ora11g; export ORACLE_HOSTNAMEPATH=/usr/sbin:$PATH; export PATHPATH=$ORACLE_HOME/bin:$PATH; export PATHsqlplus test/test <<EOFspool /home/oracle/scripts/add_data.log append  --此处添加spool 为了取到sql的具体操作,留作日志insert into test values(sysdate);commit;spool offexit;

case-2 sql语句较多,因此重新整理了sql脚本,然后在 shell脚本中 写sql脚本。如下:

[oracle@Oracle11g scripts]$ cat add_data02.sh

#!/bin/bashORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOMEORACLE_SID=prod; export ORACLE_SIDORACLE_UNQNAME=prod; export ORACLE_UNQNAMEORACLE_TERM=xterm; export ORACLE_TERMORACLE_HOSTNAME=ora11g; export ORACLE_HOSTNAMEPATH=/usr/sbin:$PATH; export PATHPATH=$ORACLE_HOME/bin:$PATH; export PATHsqlplus test/test <<EOFspool /home/oracle/scripts/add_data02.log  append@/home/oracle/scripts/add_data.sql      ---此处 add_data.sql 就是所要执行的sql脚本spool offexit;

sql脚本add_data.sql 如下:[oracle@Oracle11g scripts]$ cat add_data.sql  

set linesize 1000 pagesize 1000 heading off feedback offinsert into test values(sysdate+1);  commit;

 以下附带sqlplus中的一些参数设置

一些常用设置:

set echo on/off         是否显示脚本中的需要执行的命令 set feedback on/off     是否显示结果之后返回多少行的提示 set linesize n          设置一行最多显示多少字符 set timing on/off       显示sql语句执行多长时间 set termout on/off      在执行脚本时是否在屏幕上输出结果,如果 spool 到文件可以将其关闭 set heading on/off      是否显示查询结果的列名 set pagesize n          设置每页的行数 set trimspool on/off    在 spool 到文件时是否去除输出结果中行末尾的空白字符,之前的隔行可以用该参数去掉,和该参数对应的是 trimout,后者用于屏幕输出 set trimout on/off      是否去掉屏幕上输出结果行末尾的空白字符

转载于:https://www.cnblogs.com/iyoume2008/p/9007642.html

相关资源:Linux下定时自动执行Oracle_SQL
最新回复(0)