#Oracle Connection
export ORACLECONNECTSTRING='dps/password@frld world'
sqlplus -silent $ORACLECONNECTSTRING @$SQLDIR/ipb_dps_get_status.sql
ipb_dps_get_status.sql 是放在SQLDIR文件夹下的.sql file,把sql语句写在里面就可以派卖了
后尘基逗面你还可以加上log等
for tbl in `cat A.txt`do
echo " spool test.log@B/念旅$tbl.sqlcommitspool off" | sqlplus user/档高磨行斗password@DB
done
WHENEVER OSERROR也皮烂斗就是当出现 *** 作系统错误或者SQL错误的时候该怎么处理
例子:
sqlplus -s / <<EOF
whenever sqlerror exit SQL.SQLCODE
declare
e exception
pragma exception_init( e, -1652 )
begin
raise e
end
/
EOF是End Of File,既文件的结尾标记,在这里用历竖来标记一段代码,通常是多行
用"<<"加上一个标记就可以把一大段代码存入到一个变量中去了,在执行sqlplus时就执行变量中的代码
这里sqlplus要使用silent模式
spool a.txt
之后做的所有 *** 作都会输出到a.txt里
spool可以获取反馈的所有信息并保存到文件
每次spool都会覆盖原来的文件
然后spool off
那如果只想添加,不想覆盖
spool append a.txt
…………………………………………………………………………………………………………………………………………windows:
我们先来看WINDOWS环境该怎么处理 (不显示sql语句)
echo create table ostab (i int)|sqlplus scott/tiger;
作用就是,直接在cmd里创建了表,然后退出
define _editor=NOTEPAD
windows默认就是notepad,所燃磨以可以不用设置
create table t1 ( x int, a int )
insert into t1 values ( 1, null )
insert into t2 values ( 1, 55 )
insert into t2 values ( 1, 100 )
update ( select a, b
from t1, t2
where t1.x = t2.x )
set a = b
是不是执行错误?
那我是不是得修改这个脚本?
其实 我可以通过修改第1行就能解决这个SQL问题
那我有什么办法修改第1行?
第一行是不是update (select a,b
我要改成update ( select a, b
那我怎么样改这个语句?
因为是修改第一行
所以前面输入1 update ( select a, b
1表示第一行变成后面语句
这样第1行就修改完毕
那修改完毕后
然后执行
l或者
注意: l或者是显示所有SQL脚本
4*表示最后一行是第4行*是最后一行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)