色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

oracle的文本導入、導出技巧

瀏覽:89日期:2023-11-26 19:42:02

在使用Oracle時,總覺得oracle的導入,導出沒有informix的load,unload好用,沒辦法,只能參照網上朋友的思路和informix的實現,寫了幾個腳本,希望各位高手指點: ============================================= 工具用法: unload.sh Usage:;unload.sh;userid/passwd[@oraclesid];[tabname] 注釋: 假如不加’@oraclesid’,則用當前環境變量ORACLE_SID。 假如不加tabname參數,則處理該用戶下的所有表,生成’表名.unl’文件。 ;;;;假如加tabname參數,則單獨處理該表,生成’表名.unl’文件。 load.sh Usage:;load.sh;userid/passwd[@oraclesid];[tabname] 注釋: 假如不加’@oraclesid’,則用當前環境變量ORACLE_SID。 假如不加tabname參數,則裝載該用戶下的所有表,必須存在’表名.unl’ 文件。 假如加tabname參數,則單獨處理該表,必須存在’表名.unl’文件。 ============================================= 具體實現: unload.sh 利用spool的功能,將表中的數據導出到對應的文本中。 load.sh 利用sql*load的功能,將文本中的數據導入到表中。 ;;;控制文件是自動生成的,使用者不需要知道格式 ;;;執行sqlload的腳本也是自動生成 generate_control_file.sh 生成控制文件 generate_execute_shell.sh 生成執行腳本 ============================================= 代碼說明 load.sh ============================================= #!/usr/bin/ksh ################################################################################ # #;;?&&é:load.sh # #;;?èê&:&ù?Yò&&&ê&?Y&&&ò±í?&à&×°??&?ó&&?ê&?Y???& # #;;2?ê&;1;=;ó?&§?&/?ü?&[@ê&à&?&] #;;2?ê&;2;=;±í?&(&é?& # #;;×÷?&;Bing;He # #;;DT&????? #;;;;è??úDT&?è?;;;DT&??èê& # #;;09/23/2003;;;Bing;He;;;;;;;&&ê?±àD& # ################################################################################ lv_temp1="wk.test1" f_get_tables() { rm;-f;${lv_temp1} sqlplus;${userid};<<!;>/dev/null set;colsep;$sep; set;echo;off; set;feedback;off; set;heading;off; set;pagesize;0; set;linesize;1000; set;numwidth;12; set;termout;off; set;trimout;on; set;trimspool;on; spool;${lv_temp1}; select;table_name;from;user_tables; spool;off; exit ! if;[;"$?";-ne;0;] then ;;echo;"Error:sqlplus;${userid};error;in;load;for;${userid};!" ;;echo;"please;check;userid;and;passwd;or;oracle_sid." ;;exit fi if;[;-f;${lv_temp1};] then ;;lv_tables=`cat;${lv_temp1};grep;-v;"^SQL>";;tr;-d;';'` else ;;echo;"Error:${lv_temp1};file;not;found!" ;;exit fi rm;-f;${lv_temp1} } ################################################################################ ##;?÷3ìDòè&&ú lv_no=$# case;${lv_no};in ;;1;oracle的文本導入、導出技巧 userid=$1 f_get_tables; ;;2;oracle的文本導入、導出技巧 userid=$1 lv_tables=$2 ;;*;oracle的文本導入、導出技巧 echo;"Usage:;$0;<userid/passwd[@connection]>;<table_name>" exit esac for;lv_table;in;${lv_tables} do ;;if;[;!;-f;${lv_table}.unl;] ;;then ;;;;;;echo;"Error:${lv_table}.unl;file;not;found!" ;;else ;;;;;;generate_control_file.sh;${userid};${lv_table}; ;;;;;;generate_execute_shell.sh;${userid};${lv_table} ;;;;;;sh;load_${lv_table}.sh ;;;;;;rm;-f;${lv_table}.ctl ;;;;;;rm;-f;load_${lv_table}.sh ;;fi done ################################################################################ ============================================= unload.sh ============================================= #!/usr/bin/ksh ################################################################################ # #;;?&&é:unload.sh # #;;?èê&:&ù?Yò&&&ê&?Y&&&ò±í?&à&D&??ê&?Y2&éú3é&?ó&&?ê&?Y???& # #;;2?ê&;1;=;ó?&§?&/?ü?&[@ê&à&?&] #;;2?ê&;2;=;±í?&(&é?&oracle的文本導入、導出技巧 # #;;×÷?&;Bing;He # #;;DT&????? #;;;;è??úDT&?è?;;;DT&??èê& # #;;09/23/2003;;;Bing;He;;;;;;;&&ê?±àD& # ################################################################################ lv_sep='';#;--·?&&·&&&&éò?DT&?3é×??&?&ò&&?·?&&·&&&è&''; lv_temp1="unload.temp1" f_get_tables() {; ;;rm;-f;${lv_temp1} ;;sqlplus;${userid};<<!;>/dev/null ;;set;colsep;${lv_sep};;set;echo;off;;set;feedback;off;;set;heading;off;;set;pagesize;0;;set;linesize;1000;;set;numwidth;12;;set;termout;off;;set;trimout;on;;set;trimspool;on;;spool;${lv_temp1};;select;table_name;from;user_tables;;spool;off;;exit ! ;;if;[;"$?";-ne;0;];;;then; ;;;;echo;"sqlplus;$userid;error;in;get;table;name;<"$?">!!" ;;;;echo;"please;check;userid;and;passwd;or;database." ;;;;exit; ;;fi; if;[;-f;${lv_temp1};] then ;;lv_tables=`cat;${lv_temp1};grep;-v;"^SQL>";;tr;-d;';'` else ;;echo;"Error:${lv_temp1};file;not;found!" ;;exit fi rm;-f;${lv_temp1} } ################################################################ ##;?÷3ìDòè&&ú lv_no=$# case;${lv_no};in ;;1;oracle的文本導入、導出技巧 userid=$1 f_get_tables; ;;2;oracle的文本導入、導出技巧 userid=$1 lv_tables=$2 ;;*;oracle的文本導入、導出技巧 ; echo;"Usage:;$0;<userid/passwd[@connection]>;<table_name>" exit esac ################################################################ ################################################################ ##;?&DD????2ù×÷ for;table;in;${lv_tables}; do; ;;rm;-f;lv_$table.txt; ;;sqlplus;${userid};<<!;>/dev/null ;;set;colsep;${lv_sep};;set;echo;off;;set;feedback;off;;set;heading;off;;set;pagesize;0;;set;linesize;1000;;set;numwidth;12;;set;termout;off;;set;trimout;on;;set;trimspool;on;;spool;lv_$table.txt;;select;*;from;$table;;spool;off! ;;if;[;"$?";-ne;0;] ;;then; ;;;;echo;"error:sqlplus;$userid;error;in;unload;table;$table!!" ;;;;echo;"please;check;userid;and;passwd;or;database.";;;exit; ;;fi; ;;if;[;-f;lv_$table.txt;] ;;then; ;;;;cat;lv_$table.txt;;grep;-v;"^SQL>"sed;-e;"s/;*$//g"sed;"s/$//g"sed;-e;"s/;*//g";>${table}.unl ;;;;if;[[;`grep;"ORA-";$table.unl`;=;"";]];;then; ;;;;;;echo;"unload;table;${table}....ttttt;ok";;;else; ;;;;;;cat;${table}.unl; ;;;;;;err="$err;${table}";;;fi; ;;else; ;;;;echo;$0;error; ;;fi; ;;rm;-f;lv_$table.txt; done; ################################################################ ################################################################ ##;?áê&2ù×÷ if;[[;"X$err";=;"X";]];then; ;;echo;"Unload;Complete!,Thank;you!" else; ;;echo;"Unload;Table;$err;error,;please;check;it!"fi ################################################################ ============================================= generate_control_file.sh ============================================= #!/usr/bin/ksh ################################################################################ # #;;?&&é: generate_control_file.sh # #;;?èê&: &ù?Yò&&&±í?&éú3é&?±í&?&??????& # #;;2?ê&;1;=;ó?&§?&/?ü?&[@ê&à&?&] #;;2?ê&;2;=;±í?& # #;;×÷?&;Bing;He # #;;DT&????? #;;;;è??úDT&?è?;;;DT&??èê& # #;;09/23/2003;;;Bing;He ;;;;;;&&ê?±àD& # ################################################################################ ################################################################################ ##;?÷3ìDòè&&ú if;[;!;$#;-eq;2;] then; ;;echo;"Usage:;$0;<userid/passwd[@connection]>;<table_name>";exit; else; ;;userid=$1; ;;table=$2 fi; ################################################################################ ################################################################################ ##;?&DD????2ù×÷ lv_temp="wk_${table}.test" lv_temp1="wk_${table}.test1" lv_temp2="wk_${table}.test2" lv_control="${table}.ctl" sqlplus;${userid};<<!;>/dev/null; spool;${lv_temp}desc;${table} spool;offexit ! if;[;"$?";-ne;0;] then; ;;echo;"Error:sqlplus;${userid};error;in;generate;control;file;for;table;${table};!" ;;echo;"please;check;userid;and;passwd;or;oracle_sid.";exit; fi; if;[;-f;${lv_temp};] then; ;;;;cat;${lv_temp}grep;-v;"^SQL>";grep;-v;";Name;;;";grep;-v;";-------";awk;'{print;$1}';>;${lv_temp1} ;;;;lv_line_num=`cat;${lv_temp1};;wc;-l` ;;;;lv_line_num=`eXPr;${lv_line_num};-;2` ;;;;lv_index=0 ;;;;rm;-f;${lv_temp2} ;;;;for;lineinfo;in;`cat;${lv_temp1}` ;;;;do ;;;;;;if;[;${lv_index};-eq;${lv_line_num};] ;;;;;;then ;;echo;"${lineinfo}";>>;${lv_temp2} ;;;;;;else ;;echo;"${lineinfo},";>>;${lv_temp2} ;;lv_index=`expr;${lv_index};+;1` ;;;;;;fi ;;;;done else; ;;;;echo;"$0;error;:not;find;${lv_temp};file." ;;;;exit fi; lv_str="LOAD;DATA;INFILE;'${table}.unl';BADFILE;'bad_${table}.bad';APPEND;INTO;TABLE;${table};FIELDS;TERMINATEd;BY;""" echo;${lv_str};>;${lv_control} echo;"(";;;;;;>>;${lv_control} cat;;${lv_temp2};>>;${lv_control} echo;")";;;;;;>>;${lv_control} rm;-f;${lv_temp} rm;-f;${lv_temp1} rm;-f;${lv_temp2} ################################################################################ ============================================= generate_execute_shell.sh ============================================= #!/usr/bin/ksh ################################################################################ # #;;?&&é:generate_execute_shell.sh # #;;?èê&:&ù?Yò&&&±í?&éú3é&?±í&?×°????±? # #;;2?ê&;1;=;ó?&§?&/?ü?&[@ê&à&?&] #;;2?ê&;2;=;±í?& # #;;×÷?&;Bing;He # #;;DT&????? #;;;;è??úDT&?è?;;;DT&??èê& # #;;09/23/2003;;;Bing;He;;;;;;;&&ê?±àD& # ################################################################################ ################################################################################ ##;?÷3ìDòè&&ú if;[;!;$#;-eq;2;] then ;;echo;"Usage:;$0;<userid/passwd[@connection]>;<table_name>" ;;exit else ;;userid=$1 ;;table=$2 fi ################################################################################ ################################################################################ ##;??2&±&á&&¨ò&?&óò lv_rows=10000 lv_bindsize=8192000 lv_readsize=8192000 ################################################################################ ################################################################################ ##;éú3é?&DD??±????& echo;"sqlldr;${userid};control=${table}.ctl;rows=${lv_rows};bindsize=${lv_bindsize};readsize=${lv_readsize};log=log_${table}.log;bad=bad_${table}.bad;direct=true";>;load_${table}.sh ################################################################################ =============================================

標簽: Oracle 數據庫
相關文章:
主站蜘蛛池模板: 97久久国语露脸精品对白 | 亚洲精品久久久久中文 | 国产情侣普通话刺激对白 | 很黄很暴力深夜爽爽无遮挡 | 欧美亚洲国产视频 | 国产免费久久精品 | 亚洲人成免费网站 | 国产成人免费视频精品一区二区 | 特黄aaaaaa久久片 | 国产的一级毛片完整 | 国产丶欧美丶日韩丶不卡影视 | 亚洲人成网国产最新在线 | 国产成人精品区在线观看 | 欧美国产成人免费观看永久视频 | 亚洲综合网址 | 欧美亚洲不卡 | 日本欧美一区二区三区视频 | 毛片激情永久免费 | 三级理论手机在线观看视频 | 久久精品亚瑟全部免费观看 | 久久爱一区 | 99精品视频在线在线视频观看 | 免费人成网站 | 午夜在线亚洲男人午在线 | 香蕉在线观看999 | 欧美成年| 国产精品一区二区三区高清在线 | 玖玖精品视频在线观看 | 美女张开腿让男人桶爽动漫视频 | 97精品国产福利一区二区三区 | 国产成人看片免费视频观看 | 免费在线观看一级毛片 | 日本不卡一区在线 | 国产视频97 | 欧美日韩精品国产一区在线 | 欧美高清性色生活 | 国产成人夜间影院在线观看 | 国产欧美一区二区久久 | 九九色在线视频 | 毛片一区二区三区 | 成人免费毛片视频 |