用SHELL的循环批量执行SQL语句

--ksh下的一个WHILE 循环的例子
integer i=1
while ((i<67))
do 
  pirnt $i
  i=i+1
done

--ksh 下一个FOR循环的例子
for i in `cat listdate.txt`
do
  echo "执行 $i "
done

--- date.pl 用于生成一个时间段文件

#!/usr/local/bin/perl
use DBI;
if($#ARGV<1)
 {
 die "USAGE:date.pl <startdate> <enddate> /n";
 return(0);
}
$rundate1=$ARGV[0];
$rundate2=$ARGV[1];

$dbh=DBI->connect('dbi:Oracle:host=192.xx.xx.2;sid=ora7','report/system','')||
 die('cann/'t connect to database');
$date=$dbh->prepare("select cal_date from calendar where cal_date between to_date(?,'yyyymmdd') and to_date(?,'yyyymmdd')");
$date->bind_param( 1, $rundate1);
$date->bind_param( 2, $rundate2);
$date->execute;
while (@row = $date->fetchrow_array)
{
printf("$row[0]/n");
}
$dbh->disconnect;


---实例 批处理执行一段时间 每天 要执行的程序

date.pl 20100101 20100307 > listdate.txt
for i in `cat listdate.txt`
do
  echo "执行 $i "
  sqlplus cust/cust @cust_get_jf_md2010.sql $i
done

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下步骤在shell脚本中执行SQL语句: 1. 安装MySQL客户端或其他数据库客户端,以便在shell脚本中执行SQL语句。 2. 在shell脚本中使用命令行工具连接到数据库。 3. 编写SQL语句并将其存储在shell脚本中。 4. 使用命令行工具执行SQL语句。 例如,以下是一个简单的shell脚本,用于连接到MySQL数据库并执行一个简单的SQL查询: ``` #!/bin/bash # 连接到MySQL数据库 mysql -u username -p password -h hostname -D database_name << EOF # 执行SQL查询 SELECT * FROM table_name; EOF ``` 在这个例子中,`username`是MySQL用户名,`password`是MySQL密码,`hostname`是MySQL服务器的主机名,`database_name`是要连接的数据库的名称,`table_name`是要查询的表的名称。`<< EOF`和`EOF`之间的内容是SQL查询。 ### 回答2: Shell脚本是一种用来自动化执行任务的脚本语言,而SQL是一种用于访问和管理数据库的标准语言。对于需要自动执行查询、修改或删除数据的任务,可以将SQL语句嵌入到Shell脚本中进行执行,以实现自动化的数据管理操作。 要在Shell脚本中执行SQL语句,需要首先安装并配置相应的数据库连接工具,如MySQL的客户端或Oracle的SQL*Plus。然后,可以通过在Shell脚本中使用这些工具来执行SQL语句。 例如,下面是一个使用MySQL客户端执行查询语句的Shell脚本示例: ``` #!/bin/bash # 设置数据库连接参数 HOST="localhost" USER="root" PASS="password" DBNAME="mydatabase" # 执行查询操作 mysql -h $HOST -u $USER -p$PASS $DBNAME << EOF SELECT * FROM mytable WHERE status='active'; EOF ``` 在这个脚本中,首先设置了连接到MySQL数据库所需的参数:主机名、用户名、密码和数据库名。然后,使用mysql命令行工具来执行SQL查询语句,其中“<<EOF”表示后面的文本块是要输入给MySQL的命令,直到EOF为止。 当运行这个脚本时,它会连接到MySQL数据库并执行查询操作,然后将查询结果输出到标准输出流中。 除了查询操作,还可以在Shell脚本中执行更新、删除或插入数据的SQL语句。例如,以下是一个使用Oracle SQL*Plus工具来删除数据的Shell脚本示例: ``` #!/bin/bash # 设置数据库连接参数 USER="username" PASS="password" HOST="hostname:port" SID="database_SID" # 执行删除操作 sqlplus -silent $USER/$PASS@$HOST/$SID <<END DELETE FROM mytable WHERE status='inactive'; COMMIT; END ``` 在这个脚本中,设置了连接到Oracle数据库所需的参数:用户名、密码、主机名和数据库SID。然后,使用sqlplus命令来执行SQL删除语句和提交事务操作。 总之,Shell脚本可以用于执行各种数据管理任务,包括执行SQL语句以访问和修改数据库。使用适当配置和编写的Shell脚本,可以轻松地实现自动化的数据操作和管理。 ### 回答3: 在Linux环境下,一般采用Shell脚本来执行SQL语句Shell脚本是一种运行在Linux、Unix和类Unix操作系统上的脚本语言。我们可以利用Shell脚本执行SQL语句来完成如下工作: 1.连接数据库 Shell脚本需要先连接数据库才能执行SQL语句。连接数据库的方式可以使用命令行工具,例如mysql,也可以使用ODBC或JDBC连接。 2.执行SQL语句 连接数据库之后,我们可以用Shell脚本来执行SQL语句执行SQL语句的方式包括命令行模式和文件导入模式。命令行模式是直接在Shell终端中输入SQL语句,而文件导入模式是将SQL语句放到一个文本文件中并导入到数据库中执行。 下面是一个样例: #!/bin/sh # 设置数据库链接参数 dbhost=localhost dbport=3306 dbuser=root dbpwd=1234 dbname=test # 连接数据库 mysql -h $dbhost -P $dbport -u $dbuser -p$dbpwd $dbname << EOF # 执行SQL语句 SELECT * FROM users WHERE age>20; EOF 上面的脚本文件连接了名为test的数据库,执行了一条查询年龄大于20的用户的SQL语句。在执行Shell脚本时,我们可以直接调用该文件即可。 Shell脚本执行SQL语句的优势在于可以灵活地组织SQL语句,利用脚本的循环、判断、变量等功能,动态生成SQL语句,从而实现更复杂的数据库操作。同时,使用Shell脚本也可以避免手动输入SQL语句的繁琐操作,提高效率,减少错误的发生。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值