oracle过程、函数和程序包课件_第1页
oracle过程、函数和程序包课件_第2页
oracle过程、函数和程序包课件_第3页
oracle过程、函数和程序包课件_第4页
oracle过程、函数和程序包课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

过程、函数和包过程、函数和包目标在完成本章学习后,你将掌握下列技能;PL/SQL过程的定义与用法PL/SQL函数的定义与用法PL/SQL包的定义与用法目标在完成本章学习后,你将掌握下列技能;本章内容PL/SQL过程PL/SQL函数PL/SQL包本章内容导航PL/SQL过程PL/SQL函数PL/SQL包导航PL/SQL过程过程是指用于执行特定操作的PL/SQL块通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高应用程序的运行性能。语法:CREATE

[ORREPLACE]PROCEDUREprocedure_name(argument1[mode1]datatype1,argument2[mode2]datatype2,…){IS|AS}PL/SQLBlock;其中procedure_name指定过程名,argument指定过程参数;IS或AS用于开始PL/SQL块。PL/SQL过程过程是指用于执行特定操作的PL/SQL块PL/SQL过程-建立无参数的过程下面以建立用于输出当前日期和时间的过程out_time为例。CREATEORREPLACEPROCEDUREout_timeISBEGINDBMS_SESSION.SET_NLS(‘NLS_DATE_FORMAT’,’’’YYYY-MM-DDHH24:MI:SS’’’);DBMS_OUTPUT.PUT_LINE(sysdate);END;/PL/SQL过程-建立无参数的过程下面以建立用于输出当前日期PL/SQL过程-建立带有输入参数的过程通过使用输入参数,可以将应用程序数据传递到过程。当定义过程参数时,默认参数模式就是输入参数可以使用IN关键字显式定义输入参数。PL/SQL过程-建立带有输入参数的过程通过使用输入参数,可CREATEORREPLACEPROCEDUREadd_empl(empnoempl.empno%TYPE,enameempl.ename%TYPE,ebirthdayempl.ebirthday%TYPE,egradeempl.egrade%TYPE,ejobempl.ejob%TYPE,emajorempl.emajor%TYPE,indateempl.indate%TYPE,salaryempl.salary%TYPE,allowempl.allow%TYPE,deptnoempl.deptno%TYPE)ISBEGININSERTINTOemplVALUES(empno,ebirthday,ename,ejob,egrade,emajor,indate,salary,allow,depno);END;CREATEORREPLACEPROCEDUREadPL/SQL过程-建立带有输出参数的过程通过使用输入参数,可以将数据或消息传递到调用环境和应用程序。当定义输出参数时,需要制定参数模式为OUT。下面建立用于更新雇员工资并输出雇员姓名的过程update_sal为例。PL/SQL过程-建立带有输出参数的过程通过使用输入参数,可CREATEORREPLACEPROCEDUREupdate_sal(enovarhcar2,salNUMBER,nameOUTVARCHAR2)ISBEGINUPDATEemplSETsalary=salWHEREempno=enoRETURNINGenameINTOname;END;/CREATEORREPLACEPROCEDUREupPL/SQL过程-建立带有输入输出参数的过程通过在过程中使用输入输出函数,可以调用过程时输入数据到过程,在调用结束后输出数据到调用环境和应用程序。当定义输入输出参数时,需要指定参数模式为INOUT。PL/SQL过程-建立带有输入输出参数的过程通过在过程中使用CREATEORREPLACEPROCEDUREdevide(num1INOUTNUMBER,num2INOUTNUMBER)ISv1NUMBER;v2NUMBER;BEGINv1:=TRUNC(num1/num2);v2:=MOD(num1,num2);num1:=v1;num2:=v2;END;/CREATEORREPLACEPROCEDUREdePL/SQL过程-调用过程在SQL*PLUS中调用过程时,需要使用CALL或者EXECUTE命令;而在PL/SQL块中过程可以直接应用。过程调用带参数分4种情况:如果无参数,那么可以直接引用过程名;如果有输入参数,那么需要为输入参数提供数值;如果带有输出参数,那么需要使用变量接收输出结果;如果有输入输出参数,那么调用时需要使用具有输入值的变量。PL/SQL过程-调用过程在SQL*PLUS中调用过程时,需PL/SQL过程-调用无参数的过程直接引用过程名execout_timePL/SQL过程-调用无参数的过程直接引用过程名PL/SQL过程-调用带有输入参数的过程需要为输入参数提供数据值execadd_empl(1111,’1980-3-4’,’lei’,’programmer’,1,7369,SYSDATE,800,null,30)PL/SQL过程-调用带有输入参数的过程需要为输入参数提供数PL/SQL过程-调用带有输出参数的过程需要使用变量接受输出参数的数据值DECLAREv_nameempl.ename%TYPE;BEGINupdate_sal(&eno,&salary,v_name);DBMS_OUTPUT.PUT_LINE(‘name:’||v_name);END;/输入雇员号的值:1111输入工资的值:2500姓名:leiPL/SQL过程-调用带有输出参数的过程需要使用变量接受输出PL/SQL过程-调用带有输入输出参数的过程调用之前需要定义变量存放输入值,并在调用结束之后使用变量输出数据。DECLAREn1NUMBER:=&n1;n2NUMBER:=&n2;BEGINdivide(n1,n2);DBMS_OUTPUT.PUT_LINE(‘商:’||n1||’,余数:’||n2);END;/输入n1的值:100输入n2的值:30商:3,余数10PL/SQL过程-调用带有输入输出参数的过程调用之前需要定义为参数传递变量或数据当为参数传递变量或数据,可以采用以下3种方法位置传递名称传组合传递为参数传递变量或数据当为参数传递变量或数据,可以采用以下3种PL/SQL过程-使用位置传递为参数传递变量和数据位置传递是指按照参数定义顺序依次为每个参数提供变量或者数据值当使用位置传递时,必须为所有参数提供变量或者输入数据CALLadd_empl(2222,‘1978-12-2’,’alex’,NULL,1,NULL,SYSDATE,800,NULL,30);PL/SQL过程-使用位置传递为参数传递变量和数据位置传递是PL/SQL过程-使用名称传递为参数传递变量和数据名称传递是指通过制定参数名为其提供变量或者数据当使用名称传递时,需要使用=>为参数提供变量或者数值execadd_emp(empno=>3333,ebirghday=>,‘1989-2-2’,indate=>null,egrade=>1,ename=>’JOHN’,ejob=>null,major=>null,salary=>null,allow=>null,deptno=>null)PL/SQL过程-使用名称传递为参数传递变量和数据名称传递是PL/SQL过程-使用组合传递为参数传递变量和数据组合传递是指在调用子程序时结合使用位置传递和名称传递execadd_emp(4444,‘1985-2-3’,’AGASI’,‘tester’,1,null,indate=>SYSDATE,salary=>1200,allow=>0,deptno=>30)PL/SQL过程-使用组合传递为参数传递变量和数据组合传递是PL/SQL过程-过程开发示例为过程参数指定默认值CREATEORREPLACEPROCEDUREadd_emp(empnoempl,empno%TYPE,ebirthdayempl.ebirthday%TYPE,enameempl.ename%TYPE,ejobempl.ejob%TYPEDEFAULT‘programmer’,egradeempl.egrade%TYPEDEFAULT1,majorempl.mgr%TYPE,indateempl.indate%TYPEDEFAULTSYSDATE,salaryempl.salary%TYPEDEFAULT1000,allowempl.allow%TYPEDEFAULT0,deptnoempl.deptno%TYPE)ISBEGININSERTINTOempVALUES(empno,ebirthday,ename,ejob,egrademajor,indate,salary,allow,deptno);END;/PL/SQL过程-过程开发示例为过程参数指定默认值PL/SQL过程-使用异常处理CREATEORREPLACEPROCEDUREupdate_sal(nameempl.ename%TYPE,salempl.salary%TYPE)ISe_no_rowsEXCEPTION;BEGINUPDATEemplSETsalary=salWHERELOWER(ename)=LOWER(name);IFSQL%NOTFOUNDTHENRAISEe_no_rows;ENDIF;EXCEPTIONWHENe_no_rowsTHENDBMS_OUTPUT.PUT_LINE(‘这雇员不存在’);END;Execupdate_sal(‘jarbus’,1500)这雇员不存在Execupdate_sal(‘allen’,1500)PL/SQL过程-使用异常处理CREATEORREPLAPL/SQL过程-维护过程删除过程DROPPROCEDURE显示编译错误,查询数据字典USER_ERRORS,或者执行SHOWERRORS命令。确定过程状态,查询数据字典USER_OBJECTS。编译过程,ALTERPROCEDURE…COMPILE;查看过程代码,通过查询数据字典USER_SOURCE。PL/SQL过程-维护过程删除过程DROPPROCED导航PL/SQL过程PL/SQL函数PL/SQL包导航函数函数是一种命名存储块,可以接收输入并进行定义的逻辑处理以后把结果返回给调用者。与过程相似,只是函数必须有返回值。函数函数是一种命名存储块,可以接收输入并进行定义的逻辑处理以函数-创建基本语法CREATE[ORREPLACE]FUNCTIONfunction_name[(parameter[{IN|INOUT}]date_type1,parameter[{IN|INOUT}]date_type2,…]RETURNreturn_type;{IS|AS}declarationsectionBEGINexecutablestatementsEXCEPTIONexceptionhandlers;END[function_name];

函数-创建基本语法函数-例子

下列是求从1到某个数累加的例子CREATEORREPLACEFUNCTIONsum(nINnumber)RETURNnumberASresultnumber:=0;BEGINFORiin1…nLOOPresult:=result+i;ENDLOOP;return(result);ENDsum;函数-例子下列是求从1到某个数累加的例子函数-调用调用函数的时候需要保存返回值例子DECLAREnum1number:=10;sum1number:=0;BEGINsum1:=sum(num1);DBMS_OUTPUT.PUT_LINE(“result=“||sum1);函数-调用调用函数的时候需要保存返回值导航PL/SQL过程PL/SQL函数PL/SQL包导航PL/SQL包包用于逻辑组合相关的自定义类型、常量、变量、游标、过程和函数。简化了客户应用开发,提高性能,实现信息隐藏、子程序重载等功能。PL/SQL包包用于逻辑组合相关的自定义类型、常量、变量、游PL/SQL包-规范包规范用于定义包的公用组件,包括常量、变量、游标、自定义类型、过程和函数等。建立包规范语法CREATE[ORREPLACE]PACKAGEpackage_nameIS|AS--定义公用常量、变量等

--定义公用过程和函数等。ENDpackage_name;PL/SQL包-规范包规范用于定义包的公用组件,包括常量、变PL/SQL包-例子CREATEORREPLACEPACKAGEemp_packageISg_deptnoempl.deptno%TYPE:=30;PROCEDUREadd_employee(empnoempl.empno%TYPE,ebirthdayempl.ebirthday%TYPE,enameempl.ename%TYPE,ejobempl.ejob%TYPEDEFAULT‘programmer’,egradeempl.egrade%TYPE,majorempl.mgr%TYPE,indateempl.indate%TYPEDEFAULTSYSDATE,salaryempl.salary%TYPEDEFAULT1000,allowempl.allow%TYPE,deptnoempl.deptno%TYPEDEFAULTg_deptno);PROCEDUREfire_employee(enoNUMBER);FUNCTIONget_sal(enoNUMBER)RETURNNUMBER;ENDemp_package;PL/SQL包-例子CREATEORREPLACEPAPL/SQL包-建立包体包体用于实现包规范所定义的公用过程和函数,包体不仅可用与实现公用过程和函数,而且可以定义包的私有组件(变量、常量等)建立包体语法CREATE[ORREPLACE]PACKAGEBODY

package_nameIS|AS--定义私有变量、常量等--实现公用过程和函数ENDpackage_name;PL/SQL包-建立包体包体用于实现包规范所定义的公用过程和PL/SQL包-例子CREATEORREPLACEPACKAGEBODYemp_packageISFUNCTIONvalidate_deptno(dnoempl.deptno%TYPE)RETURNBOOLEANIStempINT;BEGINSELECT1INTOtempFROMdeptWHEREdeptno=dno;RETURNTRUE;EXCEPTIONWHENNO_DATA_FOUNDTHENRETURNFALSE;END;PROZCEDUREadd_employee(empnoempl.empno%TYPE,ebirthdayempl.ebirthday%TYPE,enameempl.ename%TYPE,ejobempl.ejob%TYPEDEFAULT‘programmer’,egradeempl.egrade%TYPE,majorempl.mgr%TYPE,indateempl.indate%TYPEDEFAULTSYSDATE,salaryempl.salary%TYPEDEFAULT1000,allowempl.allow%TYPE,deptnoempl.deptno%TYPEDEFAULTg_deptno);PL/SQL包-例子CREATEORREPLACEPAISBEGINIFvalidate_deptno(deptno)THENINSERTINTOempVALUES(empno,ebirthday,ename,ejob,egrade,major,indate,salary,allow,deptno);ENDIF;END;PROCEDUREfire_employee(enoNUMBER)ISBEGINFUNCTIONget_sal(enoNUMBER)RETURNNUMBERISv_salempl.salary%TYPE;BEGINSELECTsalaryINTOv_salFROMemplWHEREempno=eno;RETURNv_sal;END;ENDemp_package;ISPL/SQL包-调用包组件

调用包公用变量例子:emp_package.g_deptno:=20调用包公用过程例子:emp_package.g_deptno:=20emp_package.add_employee(1566,’1982-9-12’,’MARY’,1,major=>7788,comm=>0);selectename,deptnoFROMemplWHEREempno=1566执行结果:

ENAMEDEPTNO-------------------------------------MARY20PL/SQL包-调用包组件调用包公用变量调用包公用函数例子:

VARsalaryNUMBERexec:salary:=emp_package.get_sal(1566)PRINTsalary

执行结果:salary-----------2975调用包公用函数本章内容回顾

掌握过程的用法掌握函数的用法掌握包的用法本章内容回顾

掌握过程的用法过程、函数和包过程、函数和包目标在完成本章学习后,你将掌握下列技能;PL/SQL过程的定义与用法PL/SQL函数的定义与用法PL/SQL包的定义与用法目标在完成本章学习后,你将掌握下列技能;本章内容PL/SQL过程PL/SQL函数PL/SQL包本章内容导航PL/SQL过程PL/SQL函数PL/SQL包导航PL/SQL过程过程是指用于执行特定操作的PL/SQL块通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高应用程序的运行性能。语法:CREATE

[ORREPLACE]PROCEDUREprocedure_name(argument1[mode1]datatype1,argument2[mode2]datatype2,…){IS|AS}PL/SQLBlock;其中procedure_name指定过程名,argument指定过程参数;IS或AS用于开始PL/SQL块。PL/SQL过程过程是指用于执行特定操作的PL/SQL块PL/SQL过程-建立无参数的过程下面以建立用于输出当前日期和时间的过程out_time为例。CREATEORREPLACEPROCEDUREout_timeISBEGINDBMS_SESSION.SET_NLS(‘NLS_DATE_FORMAT’,’’’YYYY-MM-DDHH24:MI:SS’’’);DBMS_OUTPUT.PUT_LINE(sysdate);END;/PL/SQL过程-建立无参数的过程下面以建立用于输出当前日期PL/SQL过程-建立带有输入参数的过程通过使用输入参数,可以将应用程序数据传递到过程。当定义过程参数时,默认参数模式就是输入参数可以使用IN关键字显式定义输入参数。PL/SQL过程-建立带有输入参数的过程通过使用输入参数,可CREATEORREPLACEPROCEDUREadd_empl(empnoempl.empno%TYPE,enameempl.ename%TYPE,ebirthdayempl.ebirthday%TYPE,egradeempl.egrade%TYPE,ejobempl.ejob%TYPE,emajorempl.emajor%TYPE,indateempl.indate%TYPE,salaryempl.salary%TYPE,allowempl.allow%TYPE,deptnoempl.deptno%TYPE)ISBEGININSERTINTOemplVALUES(empno,ebirthday,ename,ejob,egrade,emajor,indate,salary,allow,depno);END;CREATEORREPLACEPROCEDUREadPL/SQL过程-建立带有输出参数的过程通过使用输入参数,可以将数据或消息传递到调用环境和应用程序。当定义输出参数时,需要制定参数模式为OUT。下面建立用于更新雇员工资并输出雇员姓名的过程update_sal为例。PL/SQL过程-建立带有输出参数的过程通过使用输入参数,可CREATEORREPLACEPROCEDUREupdate_sal(enovarhcar2,salNUMBER,nameOUTVARCHAR2)ISBEGINUPDATEemplSETsalary=salWHEREempno=enoRETURNINGenameINTOname;END;/CREATEORREPLACEPROCEDUREupPL/SQL过程-建立带有输入输出参数的过程通过在过程中使用输入输出函数,可以调用过程时输入数据到过程,在调用结束后输出数据到调用环境和应用程序。当定义输入输出参数时,需要指定参数模式为INOUT。PL/SQL过程-建立带有输入输出参数的过程通过在过程中使用CREATEORREPLACEPROCEDUREdevide(num1INOUTNUMBER,num2INOUTNUMBER)ISv1NUMBER;v2NUMBER;BEGINv1:=TRUNC(num1/num2);v2:=MOD(num1,num2);num1:=v1;num2:=v2;END;/CREATEORREPLACEPROCEDUREdePL/SQL过程-调用过程在SQL*PLUS中调用过程时,需要使用CALL或者EXECUTE命令;而在PL/SQL块中过程可以直接应用。过程调用带参数分4种情况:如果无参数,那么可以直接引用过程名;如果有输入参数,那么需要为输入参数提供数值;如果带有输出参数,那么需要使用变量接收输出结果;如果有输入输出参数,那么调用时需要使用具有输入值的变量。PL/SQL过程-调用过程在SQL*PLUS中调用过程时,需PL/SQL过程-调用无参数的过程直接引用过程名execout_timePL/SQL过程-调用无参数的过程直接引用过程名PL/SQL过程-调用带有输入参数的过程需要为输入参数提供数据值execadd_empl(1111,’1980-3-4’,’lei’,’programmer’,1,7369,SYSDATE,800,null,30)PL/SQL过程-调用带有输入参数的过程需要为输入参数提供数PL/SQL过程-调用带有输出参数的过程需要使用变量接受输出参数的数据值DECLAREv_nameempl.ename%TYPE;BEGINupdate_sal(&eno,&salary,v_name);DBMS_OUTPUT.PUT_LINE(‘name:’||v_name);END;/输入雇员号的值:1111输入工资的值:2500姓名:leiPL/SQL过程-调用带有输出参数的过程需要使用变量接受输出PL/SQL过程-调用带有输入输出参数的过程调用之前需要定义变量存放输入值,并在调用结束之后使用变量输出数据。DECLAREn1NUMBER:=&n1;n2NUMBER:=&n2;BEGINdivide(n1,n2);DBMS_OUTPUT.PUT_LINE(‘商:’||n1||’,余数:’||n2);END;/输入n1的值:100输入n2的值:30商:3,余数10PL/SQL过程-调用带有输入输出参数的过程调用之前需要定义为参数传递变量或数据当为参数传递变量或数据,可以采用以下3种方法位置传递名称传组合传递为参数传递变量或数据当为参数传递变量或数据,可以采用以下3种PL/SQL过程-使用位置传递为参数传递变量和数据位置传递是指按照参数定义顺序依次为每个参数提供变量或者数据值当使用位置传递时,必须为所有参数提供变量或者输入数据CALLadd_empl(2222,‘1978-12-2’,’alex’,NULL,1,NULL,SYSDATE,800,NULL,30);PL/SQL过程-使用位置传递为参数传递变量和数据位置传递是PL/SQL过程-使用名称传递为参数传递变量和数据名称传递是指通过制定参数名为其提供变量或者数据当使用名称传递时,需要使用=>为参数提供变量或者数值execadd_emp(empno=>3333,ebirghday=>,‘1989-2-2’,indate=>null,egrade=>1,ename=>’JOHN’,ejob=>null,major=>null,salary=>null,allow=>null,deptno=>null)PL/SQL过程-使用名称传递为参数传递变量和数据名称传递是PL/SQL过程-使用组合传递为参数传递变量和数据组合传递是指在调用子程序时结合使用位置传递和名称传递execadd_emp(4444,‘1985-2-3’,’AGASI’,‘tester’,1,null,indate=>SYSDATE,salary=>1200,allow=>0,deptno=>30)PL/SQL过程-使用组合传递为参数传递变量和数据组合传递是PL/SQL过程-过程开发示例为过程参数指定默认值CREATEORREPLACEPROCEDUREadd_emp(empnoempl,empno%TYPE,ebirthdayempl.ebirthday%TYPE,enameempl.ename%TYPE,ejobempl.ejob%TYPEDEFAULT‘programmer’,egradeempl.egrade%TYPEDEFAULT1,majorempl.mgr%TYPE,indateempl.indate%TYPEDEFAULTSYSDATE,salaryempl.salary%TYPEDEFAULT1000,allowempl.allow%TYPEDEFAULT0,deptnoempl.deptno%TYPE)ISBEGININSERTINTOempVALUES(empno,ebirthday,ename,ejob,egrademajor,indate,salary,allow,deptno);END;/PL/SQL过程-过程开发示例为过程参数指定默认值PL/SQL过程-使用异常处理CREATEORREPLACEPROCEDUREupdate_sal(nameempl.ename%TYPE,salempl.salary%TYPE)ISe_no_rowsEXCEPTION;BEGINUPDATEemplSETsalary=salWHERELOWER(ename)=LOWER(name);IFSQL%NOTFOUNDTHENRAISEe_no_rows;ENDIF;EXCEPTIONWHENe_no_rowsTHENDBMS_OUTPUT.PUT_LINE(‘这雇员不存在’);END;Execupdate_sal(‘jarbus’,1500)这雇员不存在Execupdate_sal(‘allen’,1500)PL/SQL过程-使用异常处理CREATEORREPLAPL/SQL过程-维护过程删除过程DROPPROCEDURE显示编译错误,查询数据字典USER_ERRORS,或者执行SHOWERRORS命令。确定过程状态,查询数据字典USER_OBJECTS。编译过程,ALTERPROCEDURE…COMPILE;查看过程代码,通过查询数据字典USER_SOURCE。PL/SQL过程-维护过程删除过程DROPPROCED导航PL/SQL过程PL/SQL函数PL/SQL包导航函数函数是一种命名存储块,可以接收输入并进行定义的逻辑处理以后把结果返回给调用者。与过程相似,只是函数必须有返回值。函数函数是一种命名存储块,可以接收输入并进行定义的逻辑处理以函数-创建基本语法CREATE[ORREPLACE]FUNCTIONfunction_name[(parameter[{IN|INOUT}]date_type1,parameter[{IN|INOUT}]date_type2,…]RETURNreturn_type;{IS|AS}declarationsectionBEGINexecutablestatementsEXCEPTIONexceptionhandlers;END[function_name];

函数-创建基本语法函数-例子

下列是求从1到某个数累加的例子CREATEORREPLACEFUNCTIONsum(nINnumber)RETURNnumberASresultnumber:=0;BEGINFORiin1…nLOOPresult:=result+i;ENDLOOP;return(result);ENDsum;函数-例子下列是求从1到某个数累加的例子函数-调用调用函数的时候需要保存返回值例子DECLAREnum1number:=10;sum1number:=0;BEGINsum1:=sum(num1);DBMS_OUTPUT.PUT_LINE(“result=“||sum1);函数-调用调用函数的时候需要保存返回值导航PL/SQL过程PL/SQL函数PL/SQL包导航PL/SQL包包用于逻辑组合相关的自定义类型、常量、变量、游标、过程和函数。简化了客户应用开发,提高性能,实现信息隐藏、子程序重载等功能。PL/SQL包包用于逻辑组合相关的自定义类型、常量、变量、游PL/SQL包-规范包规范用于定义包的公用组件,包括常量、变量、游标、自定义类型、过程和函数等。建立包规范语法CREATE[ORREPLACE]PACKAGEpackage_nameIS|AS--定义公用常量、变量等

--定义公用过程和函数等。ENDpackage_name;PL/SQL包-规范包规范用于定义包的公用组件,包括常量、变PL/SQL包-例子CREATEORREPLACEPACKAGEemp_packageISg_deptnoempl.deptno%TYPE:=30;PROCEDUREadd_employee(empnoempl.empno%TYPE,ebirthdayempl.ebirthday%TYPE,enameempl.ename%TYPE,ejobempl.ejob%TYPEDEFAULT‘programmer’,egradeempl.egrade%TYPE,majorempl.mgr%TYPE,indateempl.indate%TYPEDEFAULTSYSDATE,salaryempl.salary%TYPEDEFAULT1000,allowempl.allow%TYPE,deptnoempl.deptno%TYPEDEFAULTg_deptno);PROCEDUREfire_employee(enoNUMBER);FUNCTIONget_sal(enoNUMBER)RETURNNUMBER;ENDemp_package;PL/SQL包-例子CREATEORREPLACEPAPL/SQL包-建立包体包体用于实现包规范所定义的公用过程和函数,包体不仅可用与实现公用过程和函数,而且可以定义包的私有组件(变量、常量等)建立包体语法CREATE[ORREPL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论