环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5
文档用途
Oracle迁移到瀚高后,需要整理一张表对应一个与表同名的脚本,一个函数对应一个与函数同名的脚本
详细信息
一、整理表
1、导出表与脚本名一致文件
查询该模式下所有表名,拼接导出SQL语句
select ‘pg_dump --verbose --host x.x.91.130 --port 5866 --username sysdba --format plain --file /opt/’||tablename||
‘.sql’|| ’ --table test1.‘||tablename||’ mytest’
from pg_tables where schemaname = ‘test1’ order by tablename
2、创建shell脚本
(1)opt下创建~/.pgpass,添加以下内容
(2)在瀚高bin目录下创建脚本 vi 脚本名称.sh,将上面SQL查询的结果粘贴进该脚本,如下:
(3)瀚高bin目录下./脚本.sh
(4)打开脚本格式如下
(5)因为创建表语句前面注释行数固定的,写脚本删除.
vi readfile.sh内容如下
#!/bin/sh
#Folder_A="/opt/b_function/create"
#Folder_A="/opt/b_view"
#Folder_A="/opt/c_trigger"
Folder_A="/opt/c_sp"
str1="After Convert"
#line=1
for file_a in ${Folder_A}/*
do
#str1="After Convert"
temp_file=`basename $file_a`
# 查找改字段所在行
# line=`sed -n '/After Convert/=' ${Folder_A}/$temp_file`
#删除当前行
# sed -i "$line d" ${Folder_A}/$temp_file
#删除该行之前内容
tail -n +27 ${Folder_A}/$temp_file > ${Folder_A}/$temp_file.tmp
rm -f ${Folder_A}/$temp_file
mv ${Folder_A}/$temp_file.tmp ${Folder_A}/$temp_file
#替换内容
sed -i 's/test1.//g' ${Folder_A}/$temp_file
sed -i 's/TEST1.//g' ${Folder_A}/$temp_file
echo $temp_file>>test.txt
done
(6)执行./readfile.sh脚本,文件及是所需格式
二、整理对象
1、迁移工具迁移对象后,会在HG-Sabre-Migration_V4.0.3_Windows_x86-64\html\converterfile\success路径下展示成功的对象文件夹,各文件夹下对应的每个函数各自对应的脚本
2、写脚本删除After Convert字段上面的内容,如下:
#!/bin/sh
#Folder_A="/opt/b_function/create"
#Folder_A="/opt/b_view"
#Folder_A="/opt/c_trigger"
Folder_A="/opt/c_sp"
str1="After Convert"
#line=1
for file_a in ${Folder_A}/*
do
str1="After Convert"
temp_file=`basename $file_a`
# 查找改字段所在行
line=`sed -n '/After Convert/=' ${Folder_A}/$temp_file`
#删除当前行
sed -i "$line d" ${Folder_A}/$temp_file
#删除该行之前内容
tail -n +$line ${Folder_A}/$temp_file > ${Folder_A}/$temp_file.tmp
rm -f ${Folder_A}/$temp_file
mv ${Folder_A}/$temp_file.tmp ${Folder_A}/$temp_file
#替换内容
sed -i 's/test1.//g' ${Folder_A}/$temp_file
sed -i 's/TEST1.//g' ${Folder_A}/$temp_file
echo $temp_file>>test.txt
done
(3)运行脚本./脚本名.sh,结果及是所需要脚本格式