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

您的位置:首頁技術(shù)文章
文章詳情頁

oracle的文本導(dǎo)入、導(dǎo)出技巧

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

在使用Oracle時(shí),總覺得oracle的導(dǎo)入,導(dǎo)出沒有informix的load,unload好用,沒辦法,只能參照網(wǎng)上朋友的思路和informix的實(shí)現(xiàn),寫了幾個(gè)腳本,希望各位高手指點(diǎn): ============================================= 工具用法: unload.sh Usage:;unload.sh;userid/passwd[@oraclesid];[tabname] 注釋: 假如不加’@oraclesid’,則用當(dāng)前環(huán)境變量ORACLE_SID。 假如不加tabname參數(shù),則處理該用戶下的所有表,生成’表名.unl’文件。 ;;;;假如加tabname參數(shù),則單獨(dú)處理該表,生成’表名.unl’文件。 load.sh Usage:;load.sh;userid/passwd[@oraclesid];[tabname] 注釋: 假如不加’@oraclesid’,則用當(dāng)前環(huán)境變量ORACLE_SID。 假如不加tabname參數(shù),則裝載該用戶下的所有表,必須存在’表名.unl’ 文件。 假如加tabname參數(shù),則單獨(dú)處理該表,必須存在’表名.unl’文件。 ============================================= 具體實(shí)現(xiàn): unload.sh 利用spool的功能,將表中的數(shù)據(jù)導(dǎo)出到對應(yīng)的文本中。 load.sh 利用sql*load的功能,將文本中的數(shù)據(jù)導(dǎo)入到表中。 ;;;控制文件是自動(dòng)生成的,使用者不需要知道格式 ;;;執(zhí)行sqlload的腳本也是自動(dòng)生成 generate_control_file.sh 生成控制文件 generate_execute_shell.sh 生成執(zhí)行腳本 ============================================= 代碼說明 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的文本導(dǎo)入、導(dǎo)出技巧 userid=$1 f_get_tables; ;;2;oracle的文本導(dǎo)入、導(dǎo)出技巧 userid=$1 lv_tables=$2 ;;*;oracle的文本導(dǎo)入、導(dǎo)出技巧 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的文本導(dǎo)入、導(dǎo)出技巧 # #;;×÷?&;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的文本導(dǎo)入、導(dǎo)出技巧 userid=$1 f_get_tables; ;;2;oracle的文本導(dǎo)入、導(dǎo)出技巧 userid=$1 lv_tables=$2 ;;*;oracle的文本導(dǎo)入、導(dǎo)出技巧 ; 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 ################################################################################ =============================================

標(biāo)簽: Oracle 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 波多野结衣在线观看一区二区三区 | 中日韩美中文字幕 | 成人免费影院 | 成年人在线视频观看 | 九九热爱视频精品视频高清 | 久久精品视频7 | 日本亚欧乱色视频在线观看 | 成人黄色免费 | 怡红院免费va男人的天堂 | 成人男女啪啪免费观看网站 | 99热精品在线观看 | 美女wc | 精品久久久久久久久免费影院 | 欧美在线成人免费国产 | 看免费人成va视频全 | 国产精品成人观看视频国产 | 亚洲理论片在线中文字幕 | 97影院理论在线观看 | 国内精品久久久久久久久 | 国产aⅴ精品一区二区三区久久 | 欧美黄色免费网站 | 色综合久久88色综合天天提莫 | 99热在线观看 | 草草视频手机在线观看视频 | 成人在线一区二区三区 | 大狠狠大臿蕉香蕉大视频 | 久久国产视频网 | 欧美亚洲日本国产综合网 | 女人野外小树林一级毛片 | 全部aⅴ极品视觉盛宴精品 全部免费a级毛片 | 欧美亚洲欧美区 | 日日干日日操日日射 | 国产精品区一区二区免费 | 尹人成人 | 国产片一级片 | 欧美成人精品第一区 | 草久在线视频 | 欧美牲 | 欧美成人午夜视频免看 | 欧美大陆日韩 | 欧美成人三级大全 |