ORACLE程序包的创建与应用.docx

上传人:李司机 文档编号:7184767 上传时间:2024-06-29 格式:DOCX 页数:16 大小:44.35KB
返回 下载 相关 举报
ORACLE程序包的创建与应用.docx_第1页
第1页 / 共16页
ORACLE程序包的创建与应用.docx_第2页
第2页 / 共16页
ORACLE程序包的创建与应用.docx_第3页
第3页 / 共16页
ORACLE程序包的创建与应用.docx_第4页
第4页 / 共16页
ORACLE程序包的创建与应用.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《ORACLE程序包的创建与应用.docx》由会员分享,可在线阅读,更多相关《ORACLE程序包的创建与应用.docx(16页珍藏版)》请在三一办公上搜索。

1、ORAC1.EP1./SQ1.编程详解之七:程序包的创建与应用爆在于学习,对在于飘IU)本Ii主要内容如下I第七章程序包的创建和应用7.1 程序包简介7.2 程序包的定义7.3 包的开发小骤7.4 包定义的说明7.5 子程序巫我7.6 加密好用程序7.7 删除包7.8 包的管理7.1 程序包简介程序包(PACKAGE,简称包)是依相关过程、函数、变址、君玳和游标等P1./SQ1.程序设计元索的组合,作为一个完整的电元存储在数据库中,用名称来标识包.它具有面对对象程序设计语吉的特点,品对这些PIJSQ1.程序设计元案的封袋,包类似于C#和JAVA语言中的类.其中变H相当于类中的成员变Ift,过程

2、和函数相当于类方法,把相关的模块归类成为包,可使开发人员利用面对对软的方法进行存储过程的开发,从而提尚系统性能.与高级语言中的类相同,包中的程序元素也分为公用元费和私用元索两种,这两种元素的区分是他们允许访问的程序范围不同,即它包的作用域不同。公用元素Y、仅可以被包中的腐数、过程所设用,也可以被包外的P1.1SQ1.悭序访问,而私有兀素只能被包内的南敢和过程序所访问.当然,对于不包含在程序包中的过程、函数是独立存在的.侬是先漏叮:独立M过程。而数,待其较为完善或经过充分的:证无误后,再按爱新相关性组织为程序包.程序包的优点管化应用程序设计:程序包的说明枇分和包体部分可以分别创建谷痂洋.主要体现

3、在以下三个方面:1)可以在设计一个应用程序时,只创隹各明译程序包的说明部分,然后再编写引用该程序包的PUSQ1.块,2)当完成个应用程序的整体框架后,再仲I头来定义包体部分.只要不变更包的说明部分,就可以单独调试、增加或昔换包体的内容.这不会影响其他的院用程序.3)更新包的说明后必需取新嫡译引用包的应用程序,但更新包体,则不为童新糊译引用包的应用程序,以快速进行应用程序的原形开发.模块化t可将逻辑相关的PuSQ1.块或元素等如织在一起,用名称来唯一标识程序包.把一个人的功能模块划分人适当个数小的功能模块,分别完成各自的功能,这样殂织的程序包都易于编写,易于理解更易于笆理.信息ZT因为包中的元素

4、可以分为公有元素和私有元索.公有元素可就程序包内的过律*函数等的访问,还可以被包外的PUSQ1.访问。但对于私付元素只能被包内的过程.函数等访问“对于用户,只能知道包的说明,不用了解包体的具体细微环节.效率育:程序包在应用程序第一次调用程序包中的某个元素时,ORAC1.E将杷赘,包加坡到内存中,当其次次访问程序包中的元家时.ORAC1.E将干施从内在中谈取,而不须要进行磁盘Ig操作而影喇速度,同时位于内在中的程序包可被同一会话期间的其它应用程序共享,因此,程序包增加了Jft用性并改善了多用户、名应用程序环境的笠率,对程序包的优点可总结如已在PUSQ1.程序设计中,达用包不仅可以使程序设计模块化

5、.对外急减包内所运用的信息(通过运用私用变技).而写可以提高程序的执行效率.内为当程序首次调用包内函数或过程时,0RAC1.E将整个包调入内存,当再次访问包内元素时,ORAC1.E干脆从内存中读取,而不须要进行送盘IQ操作,从而使程序执行效率得到提高。一个包由两个分开的制分出成:包说明(PACKAGE):包说明郃分声明包内故幅类型、变地、常艮、游标*子程序和异样错误处理等元浓,这些元素为包的公有元素。包主体(PACKAGEBODY);包主体则是包定义部分的具体实现,它定义了包定义制分所再明的游标种子程序,在包主体中还可以声明包的私有元素.包说明和包主体分开编译,弁作为两部分分开的对望存放在数抠

6、咋字典中.可住看数擀字典USer_source,all_source.dta_source.分别了解包说明与包主体的具体怡总.7.2 程序包的定义程序包的定义分为打中包说明江义和对序包上体泥乂两部分组成,程序包说明用干部明包的公用组件,如变fit、然母、自定义数据类型、异样、过程、函数、游标等.包说明中定义的公有组件不仅可以在包内运用,还可以由包外其他过程、函数.但须要说明。留意的是.我们为了实现信息的隐藏.建议不要将全部组件都放在包说明处声明,只战把公共组件放在包声明部分.包的名称是唯一的.但.对于两个包中的公付如件的Z称可以相同,这种用“包名.公有组件名“加以区分。包体是包的具体实现细微环

7、节,其实现在包说明中声明的全部公有过程、函数、游标等.当然也可以在包体中声明仅由于自己的私有过程、函数、游标等.创建包体时,右以下几点须要留意,包体只能在包说明被创建或编译后才能进行创建或漏详在包体中实现的过程、函数游标的名珍必需与包说明中的过程、函数游标样,包括名称、一数的名粽以及参数的模式(IN.OUT.INOUT).弁建设按包说明中的次序定义包体中具体的实现.在包体中刖明的数据类型、变量、常量都是私有的,只能在包体中运用而不能被印刷体外的应用程序访问与运用.在包体执行部分,可对包说明,包体中声明的公布.或私有变贵进行初始化或其它设置.创建程序包说明语法格式:CREATEIORREP1.A

8、CE)PACKAGEPaUkagJname(AUTHIDICURREZJUSERIDEFINER)IISASJ【公有数据类型定义公有数3三类型定义:.)1公有油标声明I公有游标声明1.I公有安.常量声明1公有变.觉0声明IM公有的数声明I公有的财明J-.】(公有过程声明I公有过程声明1-1EHDpackage_nar/;其机AlTHIDCURRENTSER和AITHIDDE门M:R选项说明应用程序在调用函数时所运用的权限模式,它们与(Ri-Vil-IRCTURNNUMBER;-deletedept.FUNCTIONdelcte_dept(dept-noNUMBER)RETURNNUMBER;-

9、querydept.PROCEDUREquery_dept(dept_noNUMBER);ENDDEMo_PKG;包主体的创建方法,它实现上面所声明的包定义,并在包主体中声明一个私有变量flag和个私有函数CheCk_dept,由于在add_dept和remove_dept等函数中须要调用check.dpet函数.所区,在定义checdept函数之前首先对该函数进行声明.这种声明方法称作前向声明.CREATE:REP1.ACEPACKAGEBODYDEgPKGISFUNCTIONadd-dept;-1是违反M-约束条件的错误代码*/BEGININSERTMTOdeptVA1.UES(dept_

10、nofdept_namc,Iocation;IFSQ1.FOUNDTHENRETURN1;ENDIF;EXCEPTIONWHENempno_remainingTHENRETURNO;WHENOTHERSTHENRETURN-1;ENDadd-dpt;FUNCTIONdelete_dept(dept-noHUMBER)RETURNNUMBERISBEGlHDE1.ETEFRCMdeptWHEREdepth。-dept_no;IFSQ1.TOQNDTHENRETUBN1;E1.SERETURN0;ENDIF;EXCEPTIONWHENOTHERSTHENRETURN1;ENDdelete_dept

11、;PROCEDUREqery-deptOINNUMBER)ISBEGINSE1.ECTINTODeptRecFROMdeptwheredetnodept_no;EXCEPTIONHHENMO_DATA_FOUNDTHEN。&45_0(m6,2丁1加温唐提示:数据磔中没有娟码为,dept.no,的部门,);WHENTOO_MANY_ROWSTHENDBMS-OUTPOT.POJ1.INE胡运俏误,行蜘!);HHENOTHERSTHENDBMS_OUTPUT.FVT-1.IHE(SQ1.CODE,SQ1.ERRM);ENDquery-dept;BEGINNull;ENDDEMO_PKG;对包内共有

12、元素的调用格式为:包名.元素名称mDEMO.PKG包内函数对dept表进行插入、查询和班除操作,并通过DEMO-PKG包中的记录变量DEPTREC显示所杳询到的数据库信息:DEC1.AREV.1:NUMBER;BGINVa:-DEMO_PKGadd_dept190,HK1.ORBr,HAIKOU,);IFVdr1THENDbmsoutput.PUj1.INE(SQ1.codeSQ1.ERRM);E1.SIrV.-OTHENDBMS_OUTPUT.PUT_1.INE(,温酬8示:该部门记录日S存在I,);E1.SEDBMS-OUTPOT.POT-1.INE(,温9提示:冽Q记录胜利!,);DEM

13、O_PKG.query_dept90,-,DEMO_PKG.DeptRec.loci;r:-DEM3-PKG.delete-dept90);IFVdr1THENDbmsoutput.put_line(SQ1.code,SQ1.ERRM);E1.SIFVOTHENDBMS-OUTPOT.PUj1.lNEC温箱S示:该部门记录不存在!,);E1.SEDBMOUTPUTePUT,INE(,阻鹭?S示:阻畛记录胜利!);ENDIF;ENDIF;END;例2:创建包EMP_PKG.读取emp&中的数据一创建包说明CREATEORR1.P1.ACEPACKAGEEMP_PKGXSTYPEemp-table

14、typeISTAB1.EOFmpROWTYPEINDEXBYBINARYeIWEGER;PROCEDUREread_cmp_tablc(p_cnip_tab1eOUTcmp_tablc_type);ENDEMP_PKG;一创IS包体CREATECRREP1.ACEPACKAGEBODYEMP_PKGISPROCEDUREread_emp_table(p_ep_tableOUTep-tabl-type)ISIBINARY.INTEGER:=0;BEGINFORenp-record:N(SE1.ECTFROMenp)1.PP-emptable(i):-em-record;I:=1;CNDIX)OP

15、;ENDread_ecap_table;ENDEMP-PKG;一执行DEC1.AREE-tableMP_PKG.emp_table_typ;BEGINMP_PKG.roadJmP_tablo(e_table);FORIKactable.FIRST.e_table.1.AST1.PDBMS-OUTPr.PUT-1.INE(eatable(1).empnoIe-tablei).ename):END1.P;END;M3:创建包MANAGE_EMP_PKG,对员工进行管理(新增员工、新增部门、删除指定员工、州除指定部门、增加指定员工的1:资与奖金):一创建序列从100起先,依次增加1CREATESEQ

16、UENCEempseqSTARTWITH100INCREMENTBY1ORDERNOCYC1.E;一创建序列从100起先,依次增加10CREATESEQUENCEdeptseqSTARTWITH100INCREMENTBY10ORDERNOCYC1.E;- 创建包说明- 一包名:MANAGE_EMP_PKG- 功益描述:对员工进H管理(新增员工,新增部门- ,期除员工,倒除部门,增加工费与奖金等)-创庭人员:胡必创Ii日期:2010-05-19- QQ:80368704- -nail:0368704yahoo- -WebSite:/wwwblogshuyongCREATE:REI.ArPACK

17、AGEXANAGE_EMP_PKGAS一增加一名员工FUNCTIONhire_onp(enamVARCHAR2,jobVARCHAR2,ngrNUMBER,salNUMBER,conNUMBER,deptnoNUMBER)RETURNNUMBER;一新增一个部门FUNCTIONadd_dept(dnameVARCHAMrIocVARCHAR2)RETURNNUMBER;- JM除搞定员工PROCEDUREreoVjCflxP(CmPnONUMBER);一刮除指定部门PROCEDURErove_dept(deptnoNUMBER);一增加指定员工的工资PROCEDUREincrease_sal(

18、empnoNUMBER,三al-incrNUMBER);-M加指定员工的奖金PROCEDUREincreasecom(empnoNUMBER,CoeBnjnCrNUMBER);ENDMANAGE_EMP_PKG;-创建包说明结束_ft*-创i色体一包名:MANAGE_EMP_PKG-功耗描述:对员工进行H理(新HJ员工,新增部门一,删除员工,删除部门,熔加工资与奖金等)-创U人员:朗再-创建日期:2010-05-19QQ:80368704-mail:80368704QyahOO一WebSite:/wwwblogshyongCREATEORREP1.ACEPACKAGEBODYMANAGE_EM

19、P_PKGAStotale11F8NUMBER;-员IfitotaldeptsNUMBER;部门数no_ealEXCEPTION;no_commEXCEPTION;一塔加一名员工FUNCTIONhire-e11p(enameVARCHAR2,jobVARCHAR2,mgtNUMBER,salNUMBER,cotnmNUMBER,deptnoNUMBER)RETURNNUMBER-返回新IS加的员工18号ISnew_empnoNUMBER(4);BEGINSB1.ECTcmp三eq.NBXTVA1.INTOnew_cmpnoFROMdual;SElXCTCOUNT()IWOttal-empsFR

20、OMmp;-当前记录砂BtINSERTINTOcopVA1.UES(n。WjmPno,Onam。,job,mgr,sysdatrsalrcommrdeptno);total011pa:=totaiIjmp器+1;RETURN(new-e11no);EXCEPTIONWHENOTHERSTHENDBMS-OUTPOT.PUT_1.INE(,温髯提示发生系统错误,;ENDhireeemp;一新出一个部门FUNCTIONadddept(dnaneVARCHAR2,IocVARCHAR2)RETURNNUMBERISnew-deptnoNUMBER(4);一部门BEGIN得到一个新的自增的员工编号SE

21、1.ECTdeptscq.NEXTV1.INTOnew_deptnoFROMdual;SE1.ECTCOraT(IWTOtotal-doptsFROMdopU;一当前部门ftINSERTINTOdeptVA1.VES(new-deptno,dnamezloc);totaldepts:-total-dpts;RETURN(new_deptno);EXCEPTIONWHENOTHERSTHENDBMSeOUTPOT.PUT_1.】NE(,温警提示:发侯系统错读1,);ENDadd-dept;一删除指定员工PROCEDUREremovjePgmPnONUMBER)ISno_rosultEXCEPTI

22、ON;一自定义异样BEGINDE1.ETEFROMecnpWHERemp.empnorenxve_ecnp.empno;IFSQ1.NOTFOUNDTHENRAISEno-result;ENDIF;totalve11f8:total-ems1;总的员工数351EXCEPTIONWHENno-rultTHENDBMS-OUTPOT.PUT-1.INE(,温IWS示你须要的数据不存在1);WHENOTHERSTHENDBMS_OUTPOT.POT_1.INE(,温攫示:发生系统错误1,);ENDrcmovc_eiop;-SM砍搞定部门PROCEDUREremovc_dcpt(dcptnoNUMBE

23、R)ISno-rsultEXCEPTION,自定义异样exceptiondeptnoremAiningEXCEPTION;自定义异样/-2292是违反一样性约束的常误代码”PRAGMAEXCEPTIONeINIT(Gxcoption-doptno-romainingf-2292);BEGINDE1.ETEFROMdeptWHEREdept.deptnoreove_dept.deptno;IFSQ1.NoTFOgDTHENRAISEno_result;ENDIF;total_dcpts:-total_dcpt三1;-总的HBrMS减工EXCEPTIONWHENnov.resltTHENDBMS-

24、OUTPOT.PUTjINE(,遢善提示:你须要的数据不存在!;WHENexception_deptno_rcmainingTHENDBMS-OUTPOT.POT_1.1NE(,温*S示连反IMK完整性约束);WHENOTHERSTHENDBMS-OUTPOT.PUT_1.INE(,温窖提示:发发系统错谡!;ENDrcmove_dcpt;一给指定员工以加指定数的工资PROCEDUREincrease_sal(mpnoNUMBER,sal_incrNUMBER)IScurr-salNUMBER(7,2);-当前工资BEGIN一得到当前工资SE1.ECTsalIWOcurr-alFROMempWH

25、EREem.ennoincceaseasal.e11o;IFcurr_salISNU1.1.THENRAISEno_eal;E1.SBUPDATEmpSETsalsal+incroaso-sal.aal-incr-当前工资力窗tfl的工资WHEREe11f).empnoincrease_sal.eapno;ENDIF;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS-OUTPOT.PUT-1.INE(,温IWS示你须要的数据不存在1);WHENno_ealTHENDBMS-OUTPOT.POJ1.INE(,温辑提示:此员工的工资不存在,1);WHENOTHERSTHENDB

26、MSeOOTPOT.PVT-1.INE(,温霁Ia示发箜系统Ie误,;ENDIncreasesal;-始指定员工地博指定收量的奖金PROCEDUREIncroasQ_cono;ENDIF;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS-OUTPOT.PUT_1.INE(,阻詈提示械要的BI据不存在一);WHEN11O-COTHENDBMS_OUTPVT.PUT_1.INE(,温Ir提示:此员工的奖金不存在);WHENOTHERSTHENDBMS-OUTPOT.PUTjaNE(,澎Ine示发生系统18误,);ENDIncreasevCoran;ENDMANAGJEMP_PK

27、G;-创建包体结束一调用SQ1.variableemnonumberSQ1.execte:empno:,manage_enp_pkg.hire_enp(HUYONG,PM,1455,5500z14r10)P1./SQ1.procodrsuccessfullycoplotderrpno105例4t利刖询林变H创建包CURROR-VARIBA1.-PKG.由海标变量指是个指针,K状态挺不确定的,因此它不能伴I司包存铭在数据库中,既不能在PUSQ1.包中声明游标变诉.但在包中可以创建游标变显参照类型.并可向包中的子程序传递游标变fit参数.-创建但体一包名:CURROR-VARIBA1.PKG- 功

28、能描述:在包中引用游标变- 创建人员:胡勇- 瓶日期:2010-05-1- QQ:80368704- -E-mail:80367040yahoo一WobSite:/wwwblogshuyong_*CREATERREP1.ACEPACKAGECURROReVARIBA1.-PKGASTYPEDeptCurTypcISREFCURSORRETURNdeptROWTYPE;强类S2定义TYPECurTypeISRFCURSOR;-66类里定义PROCEDUREOpenDeptVarfCvINOUTDptCurTyperChoiceINTEGERDEFAU1.TOrDopJnoNUMBERDEFAU1

29、.T50,DPJnameVARCHARDEFAU1.T,);END;-创建包体-包名:CURROR_VARIBA1._PKG-功能描述:在包中引用游标变-创Ii人员:胡为创it日期:2010-05-19QQ:80368704- -E-Biail:8036704Qyahoo- -WobSita:/wwwblogshuyongCREATEORREP1.ACEPACKAGEBODYCURROR-VARIBA1.-PKGASPROCEDUREOpanDciptvar(Cv:OUTDeptCurTyperChoiceINTEGERDEFAU1.T0,Dept_noNUMBERDEFAU1.T50,Dop

30、JnaneVARCHARDEFAU1.T,)ISBEGINIFchoice-1THENOPENcvFORSE1.ECTFROMdptWHEREdptno,);FETCHcv2INTODeptRec;WHI1.Ecv2FOUND1.PDBMS-OUTPr.PUT_1.INE(DeptRec.deptnoI,:DeptRec.dnaae):FETCHcv2INTODeptRec;END1.OOP;DBMSeOOTPOT.PVT-1.INE(游标受R8类里定义应用YPt三);UPeOpenCurType(cv2r,D);FETCHcv2INTODcptRec;WHI1.Ecv2FOUND1.OOPD

31、BMS_OUTPOT.PUTe1.INE(doptree.doptnoII,:dptroc.dnamo);FETCHcv2INTOdeptrec;END1.OOP;DBMS-OUTPOT.PUT_1.INE(,游标变牖类里定义应用-ep表,;UPeOpenCurType(cv2rB,);FETCHcv2INTOEmpRec;WHI1.Ecv2FOUND1.OOPDBMS-OUTPr.PUT-1.INE(emprec.enpno,emprec.name);FETCHcv2INTOeeaprec;END1.OoP;C1.OSEcv2;END;运俏果游标变Al强类里:定义应用101ACCOUNTIN

32、G202RESEARCH30:SA1.ES游标变弱美型定义应用101ACCOUNTING游标变弱类S2定义应用-dpt表10ACCOUNTING20:RESEARCH30:SA1.ES40OPERATIONS50:50abc60:Developer游标变强类型定义应用-e呻表7369:SMITH7499:A1.1.EN7521:WARD7566:JoNES7654:MARTIN7698:B1.AKE7782:C1.ARK7788:SCOTT7839:KlNG7844:TURNER7876:ADAMS7900:JAMES7902:FORD7934:MI1.1.CRP1./SQ1.procedur

33、esuccessfullycompleted7.5子程序重栽PUSQ1.允许对包内子程序和本地f程洋进行重收。所谓通极时指两个或多个子程序仲川同的名称,但拥有不同的冬数变圻、容数依次或容数数据类型。M5tA*- -创Ii包说明- -但名:DEMO-PKG1- 功健描述:创建包对于程序就砌行清试- 创建人员:朗59- 创Ii日期:2010-05-22- QQ:80368704- E-mail:80368704GVahOO- -WebSite:/wwwblogshuyong-*CREATEORREP1.ACEPACKAGEDEMO-PKG1ISDeptRecdeptROMTYPE;V-sqlcod

34、NUMBER;V-sqlerrVARCHAR2(2048);一两个子程序名字相同,但叁故类型不同FUNCTIONquory_dopt(dept_no:NNUMBER)RETURNINTEGER;FUNCTIONquery-dept(dept-noINVARCHAR2)RETURNINTEGER;ENDDEMOePKGl;*A*A*- -创建包体- 三:DEMO-PKG1- 功能描述:创建包对于程序质或迸行窝试一制注人员:朗59创Ii日期:2010-05-22- QQ:80368704- E-Baail:80368704yahoo- -WebSite:/wwwblogshuyongCREATEO

35、HREP1.ACEPACKAGEBODYDEMO-PKG1ISFUNCTIONcheck-dept(dept_noNUMBER)RETURNINTEGERISdeptCntImEGER;-指定部的部门如BEGINSEUtCTCOUMT(*)IWOdeptCntFROMdoptWHEREd。PtnO=dpt-no;IFdeptCntOTHENRETURN1;E1.SERETURNO;ENDIF;ENDcheck_dept;FUNCTIONchock_dopt(dpt-11oVARCHAR2RETURNINTEGERISdeptCntIWEGER;BEGINSEIXCTCOUNT()ICTOdep

36、tCntFROMdeptWHEREdptnodpt-no;IFdeptCntOTHENRETURN1;E1.SERETURN0;ENDIF;ENDchock_dept;FUNCTIONquery-dept(dept_noINNUMBER)RETURNINTEGERISBEGINIFchocJdeptyepJno)1THENSE1.ECTINTODcptRecFROMdeptWHEREdeptnodcpt_no;RETURN1;E1.SERETURNO;ENDIF;ENDquary_dept;FUNCTIONquery-dept(dept-noINVARCHAR2)RETURNINTEGERIS

37、BEGINIFcheck-dept(dept-no)1THENSE1.ECT*INTODcptRecFROMdeptWHRdeptnodcpt_no;RETURN1;E1.SERETURN0;ENDIF;ENDquQry_dQpt;ENDDEMO_PKG1;7.6 加密好用程序ORAC1.E供应了一个好用工具来加密或者包装用户的P1.,SQ1.,它会将用户的P1.,SQ1.变更为只有ORAC1.E能济说明的代码版本.WRAP好用EftE(T$ORAC1.E_HOME/BIN.格式为:WRAPlNAME=VinPUuiIe_nameONAME三wrapinam=eample.lxtff在加密前.

38、请将PUSQ1.程序先保存份.以备后用.7.7 刷除包可以运用DROPPACKAGE吩咐对不须要的包进行则除,语法如卜:DROPPACKAGE(BODY(uer.:package_name;DROPPROCEDUREOpcnCurType;-切除存储过程一加除我们实例申6fii的各个包DROPPACKAGEdeo_pack;DROPPACKAGEdOJaCkI;DROPPACKAGEemp_mgmt;DROPPACKAGEenq_packagc;7.8 包的管理包与过程、函数一样,也是存储在数据库中的,可以Rfi时杳看其源码.若有须要,在创建包时可以随时查看更具体的编译错误.不须要的包也可以删除.同样,为了避开调用的失败,在更新表的结构后,衿定要记得重新漏译依靠于它的程序包。在更新了包说明或包体后,也应当重新编洋包说明与包体。语法如下:A1.TERPACKAGEPaCkage_nameCCttPI1.EIPACKAGEI30DYI.-.PEC:r:CATIOM;也可以通过以下数据字典视图杳看包的相关.D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号