0
点赞
收藏
分享

微信扫一扫

windows下通过bat脚本调用sql脚本


main.bat

rem '------------make sure the num of  param is correct--------'
set /a num=0
set /a num_of_params=4
for %%a in (%*) do set /a num+=1
if %num% neq %num_of_params% (
echo 'please input %num_of_params% three args as follows: username, userpasswd, dmp_dir_path'
goto :eof
)

rem '---------get input params--------'
set user_name=%1%
set user_password=%2%
set data_dmp_dir=%3%
set size_of_perfile=%4%

rem '----------create logical directory-------'
sqlplus / as sysdba @create_dir.sql %user_name% %data_dmp_dir%

rem '--------expdp data of schema--------'
expdp %user_name%/%user_password% schemas=%user_name% dumpfile=%user_name%_%%U.dmp directory=dmp_dir logfile=%user_name%.log filesize=%size_of_perfile%

create_dir.sql

show user;
grant dba to &1;
define dump_dir_path=&2
create or replace directory dmp_dir as '&dump_dir_path';
grant read , write on directory dmp_dir to &1;
quit;

#涉及知识点

  • bat脚本
  • 注释:​​rem​
  • 定义变量:​​set /a key=value​
  • 获取参数:​​set user_name=%1%​​ 获取第一个参数
  • sqlplus调用sql文件 :​​sqlplus link_str @sql_script.sql​
  • sql脚本
  • 获取参数:第一个参数​​&1​
  • 自定义变量:​​define dump_dir_path='E:/hello'​


举报

相关推荐

0 条评论