虚谷数据库xg-fetl根据自定义sql批量导入导出的windows版bat脚本,linux下bash脚本

背景

目前xugu 迁移工具还不能支持个性化的sql 批量导出导入需求,因此需要写一个批量导出导入的脚本进行支持。

一、windows 版 xg-fetl 脚本bat

1、windows版xg-fetl 支持sql个性化的 批量导出脚本bat,文件名:xg-fetl_export.bat

@echo off
setlocal enabledelayedexpansion

rem rem是bat脚本中的注释
rem tables 就是批量表名
set "tables=test1 test2 test3 test4 test5 test6"

rem D:	est 为导出目录,全英文; SYSDBA.%%i 为指定表; 其余需要改for循环中的sql语句
for %%i in (%tables%) do (
  java -jar xg-fetl.jar selectexp D:	est SYSDBA.%%i "select * from SYSDBA.%%i limit 100"
)

endlocal

2、windows版xg-fetl 支持sql个性化的 批量导入脚本bat,文件名:xg-fetl_import.bat

@echo off
rem 为注释行
REM 需要在目标端建立同样的表名及表结构
setlocal enabledelayedexpansion
REM 定义表名数组
set "tables=test1 test2 test3 test4 test5 test6"

REM D:	estSYSDBA.%%i 为含XX.exp的目录,目录要全英文; SYSDBA.%%i 为指定表
for %%i in (%tables%) do (
  java -jar xg-fetl.jar impt D:	estSYSDBA.%%i SYSDBA.%%i
)
endlocal

二、linux 版xg-fetl脚本shell

1. linux 版xg-fetl 根据自定义sql 批量导出脚本 xg-fetl_export.sh

#!/bin/bash
tables=(table1 table2 table3)
for tab_name in ${tables[@]}; do
  # /data/xg-fetl/sysdba 为导出数据目录; SYSDBA.${tab_name} 为表的变量名
  java -jar xg-fetl.jar selectexp /data/xg-fetl/sysdba SYSDBA.${tab_name} "select * from SYSDBA.${tab_name} limit 100"
done

2. linux 版xg-fetl 根据自定义sql 批量导入脚本 xg-fetl_import.sh

#!/bin/bash
tables=(table1 table2 table3)
for tab_name in ${tables[@]}; do
  # 需要在目标端建立同样的表名及表结构; SYSDBA.${tab_name} 为表的变量名
  java -jar xg-fetl.jar impt /data/xg-fetl/sysdba/SYSDBA.${tab_name} SYSDBA.${tab_name}
done