shell循环读取数据库
Ⅰ linux下编写以个shell脚本,实现对oracle数据库抽取指定条件的数据并且保存在一个文本文件中。
empno=100不存在的,改成有的数据了。
#!/bin/bash
result=$(sqlplus -s 'scott/tiger@dbname'<<EOF
spool test.txt
set pages 0
set feed off
set heading off;
set feedback off;
set verify off;
set linesize 1000;
SELECT * FROM scott.emp where empno=7369;
spool off
EOF
)
echo $result
~
~
~
~
~
~
~
~
~
"test.sh" 14L, 256C written
oracle@****:~> ./test.sh
7369 SMITH CLERK 7902 17-DEC-80 2240.06 20
oracle@****:~> more test.txt
7369 SMITH CLERK 7902 17-DEC-80 2240.06
20
Ⅱ shell脚本中执行db2数据库操作,不知道哪里错了
方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:
1.导出整个数据库 mysqlmp -u 用户名 -p 数据库名 > 导出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路径/wcnc.sql
2.导出一个表 mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_users.sql
3.导出一个数据库结构 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_db.sql
定义:
-d 没有数据
--add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库 常用source 命令 进入mysql数据库控制台:
如mysql -u root -p mysql>use 数据库
方法二、针对mysql数据表格式为MyISAM的
假如数据文件在/var/lib/mysql
那么直接写个脚本
cp -r /var/lib/mysql /备份到的文件夹路径
隔机备份用rsync增量,或定时完整备份。
Ⅲ aix k shell脚本while循环调用脚本只执行单次问题
可以把数据库查询的结果输出到文件再对文件进行循环好一点
ssql="select a||'|'||b||'|'||c from table1 "
然后进入把结果输出到一个文档>>abc.unl
cat abc.unl |grep "|" |while read abc
do
a=`echo $abc|awk -F "|" '{print $1}'`
b=`echo $abc|awk -F "|" '{print $2}'`
ssh [email protected] /temp/test.ksh $a $b
done
rm abc.unl
Ⅳ LINUX下shell脚本如何执行 sql脚本 到DB2数据库
1、在gedit中编写.sh格式的文件,保存为a.sh。
Ⅳ 如何通过SHELL脚本取数据库查询内容
db2connectto[dbname]
db2"selectmin(a)fromb;">t.txt
db2terminate
date=`catt.txt|tail-2|head-1`
echo$date