欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

利用sqlldr遷移數(shù)據(jù)-KDB到Oracle

./ kdb_to_oracle.sh user_name user_password
eg: ./get_ddl.sh nda_202 NDA_202  --從kdb導(dǎo)出nda_202 下的所有對象通過sqlldr加載到oracle數(shù)據(jù)庫中

kdb_to_oracle.sh 腳本:
#!/bin/bash
user_name=${1}
user_pass=${2}
schema_name=${3}
if [ ! -d log ]
then
mkdir log
fi
if [ ! -d ctl_file ]
then
mkdir ctl_file
fi
if [ ! -d sql ]
then
mkdir sql
fi
if [ ! -d data ]
then
mkdir data
fi
#get object type and name, T1:TABLE I1:INDEX
kdsql ${user_name}/${user_pass} << + >tab.txt.tmp
set pagesize 0
select 'TAB_NAME% '||object_name||':'||object_type from user_objects;
+
egrep TAB_NAME tab.txt.tmp |awk -F'%' '{print $NF}' > tab.txt
rm -rf tab.txt.tmp

#get ddl
for i in `cat tab.txt`
do
obj_type=`echo ${i}|awk -F ':' '{print $2}'`
obj_name=`echo ${i}|awk -F ':' '{print $1}'`
kdsql ${user_name}/${user_pass} << + >>tab.ddl
set pagesize 0
set long 999999
set linesize 20000
set heading off;
set feedback off;
spool table_ddl.txt append
SELECT DBMS_METADATA.GET_DDL('${obj_type}','${obj_name}') from dual;
spool off
+
done
sed -i '/machao>/d' table_ddl.txt
sed -i '/SQL>/d' table_ddl.txt

#get control file for sqlldr from oracle database
for i in `cat tab.txt |grep TABLE|awk -F':' '{print $1}'`
do
sqlplus -s ${user_name}/${user_pass} </app/metadata/ctl_file/${i}.ctl    
set heading off                         
set serveroutput on
set linesize 1000
exec P_generate_sqlldr_null('${i}');
EOF
done
sed -i '/PL\/SQL procedure successfully completed/d' /app/metadata/ctl_file/*.ctl

#generate sql to export plain text from kdsql
for i in `ls ctl_file/`
do
file_name=`echo ${i}|awk -F'.' '{print $1}'`
sed -n '/TRAILING NULLCOLS/,$p' ctl_file/$i > sql/${file_name}.sql
sed -i "s/TRAILING NULLCOLS (/select/g" sql/${file_name}.sql
sed -i 's/timestamp "yyyy-mm-dd hh34:mi:ss"http://g' sql/${file_name}.sql
sed -i "s/^,/||','||/g" sql/${file_name}.sql
sed -i "s/)/ from ${file_name};/g" sql/${file_name}.sql
done
#export data to *.txt from inspure database
for i in `cat tab.txt |grep TABLE|awk -F':' '{print $1}'`
do
file_name=`echo $i|awk -F'.' '{print $1}'`
kdsql ${user_name}/${user_pass} << + >/dev/null
set colsep ',';
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set termout off;
set trimout on;
set trimspool on;
set linesize 30000;
spool data/${i}.txt
@sql/${i}.sql
spool off
+
done
sed -i 's/machao>//g' data/*.txt
sed -i 's/spool//g' data/*.txt
sed -i '/spool off/d' data/*.txt
sed -i '/@sql\//d' data/*.txt
#load plain text to oracle database with sqlldr
#sqlldr ${user_name}/${user_pass} control=ctl_file/DA_MD_503506.ctl data=data/DA_MD_503506.txt log=log/DA_MD_503506.log
for i in `cat tab.txt |grep TABLE|awk -F':' '{print $1}'`
do
sqlldr ${user_name}/${user_pass} control=ctl_file/${i}.ctl data=data/${i}.txt log=log/${i}.log >/dev/null
done
#timestamp "yyyy-mm-dd hh34:mi:ss"


#SP of P_generate_sqlldr_null
CREATE OR REPLACE PROCEDURE P_GENERATE_SQLLDR_NULL (p_table_name IN VARCHAR2) AS
l_curr_line LONG;
l_table_name user_tables.table_name%TYPE;
BEGIN
select table_name
into l_table_name
from user_tables
where table_name =upper(p_table_name);
l_curr_line := '
LOAD DATA
INFILE '''||upper(l_table_name)||'.txt''
INTO TABLE '||upper(l_table_name)||chr(10)||
'FIELDS TERMINATED BY '','''||chr(10)||'TRAILING NULLCOLS (';

for rec in ( select table_name,column_name,column_id,data_type
from user_tab_columns
where table_name =upper(p_table_name)
order by column_id) loop
if rec.column_id = 1 THEN
IF rec.data_type = 'DATE' or rec.data_type='TIMESTAMP(6)' THEN
l_curr_line := l_curr_line||'
'||rec.column_name||' '||'timestamp "yyyy-mm-dd hh34:mi:ss"';
ELSE
l_curr_line := l_curr_line||'
'||rec.column_name;
END IF;
ELSE
IF rec.data_type = 'DATE' or rec.data_type='TIMESTAMP(6)' THEN
l_curr_line := l_curr_line||'
,'||rec.column_name||' '||'timestamp "yyyy-mm-dd hh34:mi:ss"';
ELSE
l_curr_line := l_curr_line||'
,'||rec.column_name;
END IF;

end if;

end loop;
l_curr_line := l_curr_line||')';
dbms_output.put_line(l_curr_line);
END P_generate_sqlldr_null;
/




網(wǎng)站標(biāo)題:利用sqlldr遷移數(shù)據(jù)-KDB到Oracle
網(wǎng)站網(wǎng)址:http://chinadenli.net/article30/joijso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣網(wǎng)站營銷、響應(yīng)式網(wǎng)站虛擬主機(jī)、小程序開發(fā)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
中文字幕日韩欧美亚洲午夜 | 日韩专区欧美中文字幕| 老司机激情五月天在线不卡| 国产一级内射麻豆91| 久久久精品日韩欧美丰满 | 91亚洲国产成人久久| 视频一区二区黄色线观看| 激情综合五月开心久久| 欧美乱妇日本乱码特黄大片| 超薄丝袜足一区二区三区| 欧美精品久久99九九| 婷婷基地五月激情五月| 夫妻性生活动态图视频| 青青操成人免费在线视频| 欧美熟妇一区二区在线| 欧美一本在线免费观看| 欧洲日本亚洲一区二区| 午夜精品一区二区av| 欧美特色特黄一级大黄片| 国产丝袜美女诱惑一区二区| 日韩在线视频精品中文字幕| 九九热九九热九九热九九热| 亚洲精品一二三区不卡| 高清国产日韩欧美熟女| 麻豆精品视频一二三区| 国产亚洲不卡一区二区| 日韩人妻一区中文字幕| 国产又粗又猛又长又大| 91超频在线视频中文字幕| 日韩一区中文免费视频| 国产高清精品福利私拍| 免费在线成人激情视频| 中文字幕欧美视频二区| 欧美偷拍一区二区三区四区 | 亚洲精品成人综合色在线| 日韩在线欧美一区二区| 色一情一伦一区二区三| 国产精品视频久久一区| 国产又爽又猛又粗又色对黄| 精品高清美女精品国产区| 99秋霞在线观看视频|