av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

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

瀏覽:103日期: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)出到對(duì)應(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 ################################################################################ =============================================

相關(guān)文章:
主站蜘蛛池模板: 一区二区三区在线看 | 亚洲国产精品一区二区第一页 | 日韩欧美大片 | 黄色日批视频 | 91亚洲精品在线 | 欧美成视频 | 欧美一区二区在线观看 | 东方伊人免费在线观看 | 精品一区二区不卡 | 日韩三区在线观看 | 午夜精品一区二区三区在线观看 | 国产一级视频在线播放 | 国产日屁 | 成人av网站在线观看 | 超碰精品在线 | 成人三级视频 | 日韩三级电影在线看 | 欧美天堂 | 免费观看一级特黄欧美大片 | 亚洲精品成人在线 | 欧美操操操| 一级黄a| 黄色一级大片在线免费看产 | 美女天天操| 在线免费国产 | 天天综合久久网 | 青春草国产 | 99久久精品免费看国产四区 | 久久亚洲天堂 | 久久久久久影院 | 国产精品一区二区免费看 | 国产一区二区视频在线观看 | 青青草av在线播放 | 午夜影院普通用户体验区 | 日韩在线播放第一页 | 国产精品三级 | 国产一区二区三区免费 | 一级免费毛片 | 精品成人 | 一级毛片在线播放 | 欧美一二三 |