oracle批量更新数据库对象

待解决:

1.当连接数据库时出现错误,无法继续往下执行;

2.只捕捉了exec.log中ORA-错误,且需要手动处理;

          

 

核心代码

使用sqlplus连接远程数据库执行本地sql文件,批量更新数据库对象

sqlplus username/pwd@hostname:port/sid @test.sql

bat文件

@echo off
chcp 936
Title  批量执行sql
set file_path=%~dp0
echo running...
echo start update > exec.log
for /f "usebackq " %%i in ("%file_path%db.conf") do (
	rem echo %%i >> exec.log
	echo %%i
	sqlplus %%i @test.sql >>exec.log 
)
FINDSTR "ORA-" exec.log
echo end
pause >nul

test.sql文件

可以写ddl和dml语句

create or replace function getMax(num1 in number, num2 in number) return number is
  FunctionResult number;
begin
    IF num1 >num2
      THEN FunctionResult := num1;
      ELSE FunctionResult := num2;
        END IF;
  return(FunctionResult);
end getMax;
--以下为结束标识
/
exit;

db.conf文件配置数据库连接信息

username/pwd@hostname:port/sid
username/pwd@hostname:port/sid2
username/pwd@hostname:port/sid3
username/pwd@hostname:port/sid4
username/pwd@hostname:port/sid5
username/pwd@hostname:port/sid6
username/pwd@hostname:port/sid7
username/pwd@hostname:port/sid8
username/pwd@hostname:port/sid9
...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值