




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、oracle獲取存儲過程信息(Oracle gets stored procedure information)選擇文本從user_source類型=“過程”按名稱、行順序;選擇package_name從user_arguments秩序*SELECT * FROM user_proceduresSELECT * FROM user_source name = up_compclearresult4settlefile”SELECT * FROM user_objects object_type在哪里(package身體)以object_name;選擇dbms_metadata。get_ddl(
2、 #表#,#表名 #,#用戶名#)從雙;選擇dbms_metadata。get_ddl(,u.table_name)從user_tables U;選擇dbms_metadata。get_ddl(index ,u.index_name)從user_indexes U;t_tmperrorsp表;創(chuàng)建表t_tmperrorsp(名稱char(100),結(jié)果char(10);在表t_tmperrorobj評論是“無效對象表”;柱上t_評論是“對象名”;柱上t_tmperrorobj.result評論是“返回結(jié)果”;t_tmpvalidobj表;創(chuàng)建表t_tmpvali
3、dobj(名稱char(100),結(jié)果char(10);在表t_tmpvalidobj評論是“有效對象表”;柱上t_評論是“對象名”;柱上t_tmpvalidobj.result評論是“返回結(jié)果”;t_tmpcheckdata表;創(chuàng)建表t_tmpcheckdata(parentname char(100),childname char(100),parametername char(100),副模式字符(20),項(xiàng)目int,in_out char(4),參數(shù)數(shù)據(jù)VARCHAR2(200),pk_tmpcheckdata主鍵約束(parentname,childn
4、ame,項(xiàng));在表t_tmpobjparameter評論是“對象檢查列表”;柱上parentname評論是“父對象名”;柱上childname評論是“子對象名”;柱上parametername評論是“參數(shù)名”;在柱副模式的評論是“參數(shù)數(shù)據(jù)類型”;在物品欄的評論是“參數(shù)順序”;柱上in_out評論是“參數(shù)輸入輸出類型”;在柱參數(shù)數(shù)據(jù)的評論是“參數(shù)值”;t_tmpobjparameter表;創(chuàng)建表t_tmpobjparameter(parentname char(100),childname char(100),parametername char(100),副模式字符(20),paralengt
5、h int,項(xiàng)目int,in_out char(4),pk_tmpobjparameter主鍵約束(parentname,childname,項(xiàng));在表t_tmpobjparameter評論是“對象參數(shù)表”;柱上parentname評論是“父對象名”;柱上childname評論是“子對象名”;柱上parametername評論是“參數(shù)名”;在柱副模式的評論是“參數(shù)數(shù)據(jù)類型”;柱上paralength評論是“參數(shù)數(shù)據(jù)長度”;在物品欄的評論是“參數(shù)順序”;柱上in_out評論是“參數(shù)輸入輸出類型”;t_tmpobjresult表;創(chuàng)建表t_tmpobjresult(parentname char(
6、100),childname char(100),parametername char(100),結(jié)果VARCHAR2(200),項(xiàng)目int,isindentical char(4),pk_tmpobjresult主鍵約束(parentname,childname,項(xiàng));在表t_tmpobjparameter評論是“對象運(yùn)行結(jié)果表”;柱上parentname評論是“父對象名”;柱上childname評論是“子對象名”;柱上parametername評論是“參數(shù)名”;柱上的結(jié)果的評論是“返回值”;在物品欄的評論是“參數(shù)順序”;柱上isindentical評論是“結(jié)果是否一致”;創(chuàng)建包pkg_te
7、stingobject是程序up_getvalidobject(o_retcounter了into_retcursor出sys_refcursor獲得有效的對象);程序up_loadxmlfile(o_filestr在空,o_retcode了int,o_retcursor出sys_refcursor導(dǎo)入對象檢查列表);程序up_check(在sys_refcursor o_objcursor,在sys_refcursor o_checkcursor,o_retcode了int,o_retcursor出sys_refcursor);將參數(shù)賦值給對象,并運(yùn)行它程序up_compare(在sys_r
8、efcursor o_chkcursor,在sys_refcursor o_xmlcursor,o_retcode了int比較對象運(yùn)行結(jié)果與檢查列表是否一致)。程序up_testing(o_filestr在VARCHAR2(400),o_retcode了int);最后pkg_testingobject;創(chuàng)建包體pkg_testingobject作為程序up_getvalidobject(o_retcounter了into_retcursor出sys_refcursor)是開始o(jì)_retcounter:= 0;打開o_retcursor為選擇object_name,從user_objects哪里
9、object_type狀態(tài)(package身體)以object_name;CS在o_retcursor環(huán)TRUNCATETABLE t_tmperrorobj;TRUNCATETABLE t_tmpvalidobj;如果cs.object_name 的pkg_testingobject然后如果cs.status “有效的”然后插入t_tmpvalidobj(名稱、結(jié)果)值(CS。object_name,CS。狀態(tài));其他的插入t_tmperrorobj(名稱、結(jié)果)值(CS。object_name,CS。狀態(tài));o_retcounter:= o_retcounter + 1;最后如果最后如果結(jié)
10、束循環(huán)如果o_retcounter 0插入t_tmpobjparameter(parentname,childname,parametername,副模式,項(xiàng)目,in_out,)選擇object_name,package_name,argument_name,data_type,位置,從user_arguments哪里package_name在in_out(選擇的名字從t_tmpvalidobj)以package_name,object_name,位置;e_mail:m_y打開o_retcursor為SELECT * FROM t_tmpobjparameter;最后如果返回;最后up_get
11、validobject;程序up_loadxmlfile(o_filestr在空,o_retcode了int,o_retcursor出sys_refcursor)是解析器解析器XMLParser;醫(yī)生xmldom.domdocument;結(jié)xmldom.domnode;xmldom.domnodelist列表;nodelength int;根據(jù)包結(jié)點(diǎn)生成插入SQL語句的過程通過畫圖省識春風(fēng)面功能getsqlstring(節(jié)點(diǎn)的文檔。DOMNode)返回空是l_node xmldom.domnode;l_nodelist xmldom.domnodelist;l_length數(shù);l_nodema
12、p xmldom.domnamednodemap;l_element xmldom.domelement;l_sqlstr VARCHAR2(400);開始取得包結(jié)點(diǎn)所有屬性l_nodemap:= XMLDOM getattributes(節(jié)點(diǎn));l_sqlstr:=“插入t_tmpcheckdata值(;l_sqlstr:= l_sqlstr | | ;取得所有屬性中的第一個屬性,即“名”,并拼接到SQL語句中l(wèi)_sqlstr:= l_sqlstr | | XMLDOM。getnodevalue(XMLDOM。項(xiàng)目(l_nodemap,0);l_sqlstr:= l_sqlstr | | ;
13、取得包結(jié)點(diǎn)下的程序結(jié)點(diǎn),跳過。l_nodelist:= XMLDOM getchildnodes(l_node);取得程序節(jié)點(diǎn)下的所有程序節(jié)點(diǎn)l_node:= XMLDOM項(xiàng)目(l_nodelist,0);l_nodelist:= XMLDOM getchildnodes(l_node);l_sqlstr:= l_sqlstr | | ,;l_sqlstr:= l_sqlstr | | ;l_nodemap:= XMLDOM getattributes(l_node);l_sqlstr:= l_sqlstr | | XMLDOM。getnodevalue(XMLDOM。項(xiàng)目(l_nodemap
14、,0);l_sqlstr:= l_sqlstr | | ;取得程序結(jié)點(diǎn)下的參數(shù)結(jié)點(diǎn),跳過。l_nodelist:= XMLDOM getchildnodes(l_node);取得參數(shù)節(jié)點(diǎn)下的所有參數(shù)節(jié)點(diǎn)l_node:= XMLDOM項(xiàng)目(l_nodelist,0);l_nodelist:= XMLDOM getchildnodes(l_node);l_length:= XMLDOM。長度(l_nodelist);我在0 l_length-1環(huán).我個結(jié)點(diǎn)-取出第l_node:= XMLDOM。項(xiàng)目(l_nodelist,我);l_element:= XMLDOM makeelement(l_no
15、de);l_sqlstr:= l_sqlstr | | ,;l_sqlstr:= l_sqlstr | | ;將結(jié)點(diǎn)的名字屬性值取出并拼接到SQL語句中l(wèi)_sqlstr:= l_sqlstr | | XMLDOM對象(l_element,name);l_sqlstr:= l_sqlstr | | ;l_sqlstr:= l_sqlstr | | ,;l_sqlstr:= l_sqlstr | | ;將結(jié)點(diǎn)的型屬性值取出并拼接到SQL語句中l(wèi)_sqlstr:= l_sqlstr | | XMLDOM對象(l_element,類型”);l_sqlstr:= l_sqlstr | | ;l_sqls
16、tr:= l_sqlstr | | ,;l_sqlstr:= l_sqlstr | | ;將結(jié)點(diǎn)的項(xiàng)目屬性值取出并拼接到SQL語句中l(wèi)_sqlstr:= l_sqlstr | | XMLDOM對象(l_element,Item);l_sqlstr:= l_sqlstr | | ;l _ sqlstr: = l _ sqlstr | | ,;l _ sqlstr: = l _ sqlstr | | ;- - - - - - - - 將結(jié)點(diǎn)的in _ out屬性值取出并拼接到sql語句中l(wèi) _ sqlstr: = l _ sqlstr | | xmldom.getattribute (l _ el
17、ements, in _ out);l _ sqlstr: = l _ sqlstr | | ;l _ sqlstr: = l _ sqlstr | | ,;l _ sqlstr: = l _ sqlstr | | ;- - - - - - - - 將結(jié)點(diǎn)的文本值取出并拼接到sql語句中l(wèi) _ sqlstr: = l _ sqlstr | | xmldom.getnodevalue (xmldom.getfirstchild (l _ node);l _ sqlstr: = l _ sqlstr | | ;end loop;l _ sqlstr: = l _ sqlstr | | );retu
18、rn l _ sqlstr;end getsqlstring;beginparser: = xmlparser.newparser;xmlparser.parse (parser, no _ filestr);- - - - - - - - 轉(zhuǎn)換xml文件成dom對像doc: = xmlparser.getdocument (parser);xmlparser.freeparser (parser);- - - - - - - - 取出所有package元素nodelist: = xmldom.getelementsbytagname (doc, package);nodelength: =
19、xmldom.getlength (nodelist);- - - - - - - - 清空t _ tmpcheckdata表的內(nèi)容truncate from t _ tmpcheckdata;for i in 0.nodelength - 1 loop- - - - - - - - 取出第i個package元素node: = xmldom.item (nodelist, (i);- - - - - - - - 執(zhí)行插入該package元素所用的sql語句execute immediate getsqlstring (node);end loop;commit;xmldom.freedocum
20、ent (doc);open no _ retcursor for select * from t _ tmpcheckdata by order of parentname;end up _ loadxmlfile;procedure up _ check (no _ objcursor in sys _ refcursor,no _ checkcursor in sys _ refcursor,no _ retcode out intno _ retcursor out _ refcursor sys)ol _ declare varchar2 (1024);l _ sqlstr varc
21、har2 (1024);l _ variablestr varchar2 (1024);l _ columnstr varchar2 (1024);l _ insertstr varchar2 (1024);l _ endstr char (4): = end;l _ counter int;l _ used int;l _ parentname char (100);l _ childname char (100);l _ item int;beginl _ declare: = ;l _ sqlstr: = ;l _ variablestr: = ;l _ columnstr: = ;l
22、_ insertstr: = ;l _ counter: = 0;l _ used: = 0;l _ parentname: = ;l _ childname: = ;l _ item: = 0;for os in no _ objcursor loopif l _ used = 0 thenl _ parentname: = os.parentname;l _ childname: = os.childname;l _ item: = os.item;elseif l _ parentname os.parentname or l _ childname os.childname thene
23、xecute immediate l _ declare | | l _ sqlstr | | l _ variablestr | | l _ columnstr | | l _ insertstr | | l _ endstr;l _ declare: = ;l _ sqlstr: = ;l _ variablestr: = ;l _ columnstr: = ;l _ insertstr: = ;l _ counter: = 0;l _ used: = 0;l _ parentname: = ;L _ childname: = ;L _ item: = 0;ElseIf l _ count
24、er = 0 thenL _ declares: = declare V _ sqlstr VARCHAR2 (1024);L _ sqlstr: = begin;End ifSelect parentname into L _ parentname, childname into L _ childname from t _ tmpcheckdata where parentname = l _ parentname and childname = l _ childname & item = os.itemIf os.item = 0 thenL _ sqlstr: = l _ sqlst
25、r | | V _ sqlstr: = begin | | L _ parentname | | . | | L _ childname | | () ; end; | | execute immediate V _ sqlstr; ; - - by畫 圖省識春風(fēng)面Execute immediate L _ declares | | L _ sqlstr | | L _ variablestr | | L _ columnstr | | L _ insertstr;L _ sqlstr: = ;L _ counter: = 0;L _ used: = 0;ElseL _ declares: =
26、 l _ declares | | os.parametername os.paratype;If os.item = 1 thenL _ sqlstr: = l _ sqlstr | | : | | os.item;ElseL _ sqlstr: = l _ sqlstr | | , | | os.item;End ifL _ counter: = l _ counter + 1);If os.in _ out = in thenIf cs.item = 1 thenL _ parastr: = l _ parastr | | os.in _ out | | cs.parameterdata
27、;ElseL _ parastr: = l _ parastr | | , | | os.in _ out | | cs.parameterdata;End ifElseIf cs.item = 1 thenL _ parastr: = l _ parastr | | os.in _ out | | cs.parametername;ElseL _ parastr: = l _ parastr | | , | | os.in _ out | | cs.parametername;End ifEnd ifEnd ifL _ used: = 1;If l _ used = 1 thenL _ sqlstr: = l _ sqlstr | |) using ;L _ parastr: = l _ parastr | | ;Execut
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全注射單選試題及答案
- 基于區(qū)塊鏈技術(shù)的2025年互聯(lián)網(wǎng)+政務(wù)服務(wù)安全與可信度提升與實(shí)踐報(bào)告001
- 2025年直播電商主播影響力測評與定制化營銷策略研究報(bào)告
- 南京網(wǎng)絡(luò)課件師培訓(xùn)
- 顧問式營銷培訓(xùn)課件
- 制圖基本技術(shù)課件
- 腫瘤重點(diǎn)??平ㄔO(shè)成果匯報(bào)
- 脂肪瘤護(hù)理診斷
- 中國入境旅游課件下載
- 中國兒童文學(xué)史課件
- MicroLED顯示技術(shù)產(chǎn)業(yè)化項(xiàng)目可行性研究報(bào)告(范文模板)
- 2025浙江中考:生物必背知識點(diǎn)
- 2025年國家開放大學(xué)《會計(jì)案例分析》形成性考核123答案+終結(jié)性考核答案
- 股權(quán)質(zhì)押融資與境外投資合作協(xié)議
- 汽油清凈性評價(jià) 汽油機(jī)進(jìn)氣閥沉積物模擬試驗(yàn)法 編制說明
- 沂蒙精神考試試題及答案
- 2024-2025學(xué)年人教版一年級下冊美術(shù)期末考試卷及參考答案
- 2024北京豐臺區(qū)五年級(下)期末語文試題及答案
- 2025年貴州燃?xì)饧瘓F(tuán)貴安新區(qū)燃?xì)庥邢薰菊衅腹P試參考題庫附帶答案詳解
- 旅行社計(jì)調(diào)國家職業(yè)技能標(biāo)準(zhǔn)
- 2025克拉瑪依市輔警考試試卷真題
評論
0/150
提交評論