Oracle创建存储过程、创建函数、创建包
一、Oracle创建存储过程
1、基本语法
2、写一个简单的例子修改emp表的ename字段
调用方法如下:
就写一个简单的返回empno=7935的sal值
调用有返回值的过程
1、基本语法规则如下:
2、写一个简单的查询例子查询出empno=7935的sal值
调用此函数:
三、Oracle创建包
包用于组合逻辑相关的过程和函数,它由包规范和包体两个部分组成。包规范用于定义公用的常量、变量、过程和函数,创建包规范可以使用CREATE PACKAGE命令,创建包体可以使用CREATE PACKAGE BODY
1、创建包规范
2、创建包体
在此提示,在没有创建包规范就创建包体,会失败,要使用包,必须先创建包规范,然后在创建包体
当要调用包的过程和函数时,在过程和函数的名称前加上包名作为前缀(包名.子程序名称),而如果要访问其他方案的包时需要在包的名称前加上方案的名称
(方案名称.包名.子程序名称)
实例:
一、Oracle创建存储过程
1、基本语法
create or replace procedure update_emp_sal(Name in out type, Name in out type, ...) isbegin end update_emp_sal;
2、写一个简单的例子修改emp表的ename字段
create or replace procedure update_emp(v_empno varchar2,v_ename varchar2) isbeginupdate emp set ename=v_ename where empno=v_empno; end update_emp;
调用方法如下:
SQL>exec update_emp('7935','test');2、有返回值的存储过程
就写一个简单的返回empno=7935的sal值
create or replace procedure emp_out_sal ( v_empno in varchar2, v_sal out number ) is vsal number(7,2); begin select sal into vsal from emp where empno=v_empno; v_sal:=vsal; end;
调用有返回值的过程
SQL> var vsal numberSQL> exec emp_out_sal('7935',:vsal);PL/SQL procedure successfully completedvsal---------700SQL> var vsal numberSQL> call emp_out_sal('7935',:vsal);Method calledvsal---------700二、Oracle创建函数(function)
1、基本语法规则如下:
create or replace function (Name in type, Name in type, ...) return number is Result number;begin return (Result);end ;
2、写一个简单的查询例子查询出empno=7935的sal值
create or replace function ret_emp_sal(v_ename varchar2)return numberisv_sal number(7,2);beginselect nvl(sal,0) into v_sal from emp where lower(ename)=lower(v_ename);return v_sal;end;
调用此函数:
SQL> var vsla numberSQL> call ret_emp_sal('7935') into :vsal;Method calledvsal---------700
三、Oracle创建包
包用于组合逻辑相关的过程和函数,它由包规范和包体两个部分组成。包规范用于定义公用的常量、变量、过程和函数,创建包规范可以使用CREATE PACKAGE命令,创建包体可以使用CREATE PACKAGE BODY
1、创建包规范
create package emp_pkg is procedure emp_update_ename(v_empno varchar2,v_ename varchar2); function emp_get_sal(v_empno varchar2) return number; end;
2、创建包体
create or replace package body emp_pkgis procedure emp_update_ename ( v_empno varchar2, v_ename varchar2 ) is vename varchar2(32); begin update emp set ename=v_ename where empno=v_empno; commit; select ename into vename from emp where empno=v_empno; dbms_output.put_line('雇员名称:'||vename); end; function emp_get_sal ( v_empno varchar2 ) return number is vsal number(7,2); begin select sal into vsal from emp where empno=v_empno; return vsal; end;end;
在此提示,在没有创建包规范就创建包体,会失败,要使用包,必须先创建包规范,然后在创建包体
当要调用包的过程和函数时,在过程和函数的名称前加上包名作为前缀(包名.子程序名称),而如果要访问其他方案的包时需要在包的名称前加上方案的名称
(方案名称.包名.子程序名称)
实例:
SQL> var vsla numberSQL> call emp_pkg.emp_get_sal('7935') into :vsal;Method calledvsal---------700SQL> exec emp_pkg.emp_update_ename('7935','helong');雇员名称:helongSQL> call emp_pkg.emp_update_ename('7935','helong');Method calledSQL> select * from dual;DUMMY-----X雇员名称:helong
发表评论
-
No result defined for action and result input
2014-11-04 00:00 722No result defined for action an ... -
oracle常用函数
2014-09-25 13:52 625oracle常用函数 1.decode(value,if 1 ... -
java 对象之间属性值复制
2014-09-15 13:42 17171, BeanUtils.copyProperties(des ... -
XStream解析下划线出现重复问题
2014-07-17 17:15 1577直接看代码 XStream xs = new XStrea ... -
在eclipse中svn账户或密码错误或想更改用户
2014-04-21 16:26 859删除c:\User\当前登录名\AppData\Roaming ... -
spring3集成quartz2
2014-04-19 14:34 985最近项目中要用到quartz 做job,在网上看了些资料,自己 ... -
oracle与mysql多行合并
2014-04-14 14:59 8271.oracle多行合并一行 效果: SELECT a, ... -
jasperreport报表问题
2014-04-04 17:14 1272今天改报表遇到个问题,从svn拉了个报表下来直接改,改后编译放 ... -
如何防止用户重复提交
2013-08-26 18:43 1198防止重复提交java解决 ... -
java.lang.IllegalStateException: getOutputStream() has already been called for t
2013-06-04 21:42 1104最近查看apache tomcat日志,发现经常出现一个错误如 ... -
简单的Excel导出
2013-05-28 23:02 1016项目报表要做导出Excel的功能,用了POI,首先要加载POI ... -
sql
2013-04-01 17:20 676sql从一张表的数据更新到另一张表 UPDATE 表B S ... -
javascript获取当前行
2013-01-10 14:53 1391这些天用到了,记下来,说不定将来有用 var td=even ... -
严格的身份证号码验证
2012-12-27 15:26 981<script> function chec ... -
游标的使用
2012-12-06 21:00 914create or replace procedure ... -
存储过程
2012-12-06 19:41 879存储过程 1 CREATE OR REPLACE PRO ... -
关于oracle 中的jobs
2012-12-06 15:18 1180先给个小例子吧 create ... -
javascript操作时间总结
2012-11-22 19:57 868时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断 ... -
tomcat启动时报异常java.lang.Exception: Socket bind failed
2012-11-07 10:57 1582异常如下: 严重: Error starting endpoi ... -
浅谈网页乱码问题分析
2012-10-28 21:33 13441.首先,我要讲一下乱 ...
相关推荐
1. **操作EMP表**:我们可以创建存储过程或函数来查询、插入、更新或删除`EMP`表的数据。例如,创建一个显示所有员工姓名的存储过程: ```sql CREATE OR REPLACE PROCEDURE display_employees IS CURSOR c_emp IS...
在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...
### Java中调用Oracle的存储过程和函数 在Java应用程序中调用Oracle数据库中的存储过程或函数是一项常见的任务。这不仅能够提高代码的执行效率,还可以有效地管理事务处理,确保数据的一致性和完整性。本文将详细...
- **定义**:包是一组相关的存储过程、函数和类型定义的集合。 - **组成**:包由两部分组成——包规范和包体。 - 包规范:声明了包中包含的存储过程和函数的接口。 - 包体:包含了实际的实现代码。 - **创建**: ...
综上所述,以上示例覆盖了Oracle存储过程和函数的基本创建方法,包括无参数、带参数、默认参数、输出参数以及输入输出参数等不同情况。这些知识对于理解如何有效地使用Oracle数据库中的存储过程和函数至关重要。
综合这三个主题,Oracle数据库开发者可以通过学习和熟练运用存储过程、函数和PL/SQL,提升数据库应用程序的性能和可维护性。了解并掌握游标管理,可以帮助开发者更加高效地处理大数据量的情况。这些知识对于任何涉及...
根据给定文件的信息,我们可以详细地探讨Oracle数据库中存储过程和函数的相关知识点。 ### 存储过程的意义 存储过程是一种数据库对象,它是由SQL语句和流程控制语句组成的预编译模块,存储在数据库服务器上。存储...
在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...
Oracle实验报告
- 在Oracle中,创建存储过程使用`CREATE OR REPLACE PROCEDURE`语句,如: ```sql CREATE OR REPLACE PROCEDURE procedure_name (param1 datatype, param2 datatype) IS BEGIN -- SQL语句和PL/SQL代码 END; `...
#### 二、创建存储过程 根据提供的部分代码示例,我们可以看到一个简单的存储过程`TESTA`被创建: ```sql CREATE OR REPLACE PROCEDURE TESTA( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2 ) AS BEGIN INSERT INTO ...
### Delphi调用Oracle的...总结来说,本文详细介绍了如何在Delphi中调用Oracle的存储过程,包括存储过程的创建、Delphi环境的配置以及具体的代码实现。这为开发者提供了一个实用的例子,以便更好地理解和掌握这一技术。
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程接口,其中存储过程、函数、包和游标是数据库开发中常用的重要元素。以下是对这些概念的详细解释和它们在实际应用中的作用。 ### 存储过程 ...
#### 创建存储过程 存储过程是一种在数据库中存储的预编译的SQL和PL/SQL语句集合。它可以在任何时候被调用执行。创建一个简单的存储过程如下: ```sql CREATE OR REPLACE PROCEDURE my_procedure (p_no NUMBER) IS ...
首先,在数据库端创建简单的存储过程。 create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user ||', Good Morning!'; end; 然后,开始在Python命令行中进行...
创建存储过程的语法如下: ```sql CREATE OR REPLACE PROCEDURE procedure_name (parameter_list) IS -- 声明部分,定义变量、游标等 BEGIN -- 执行部分,包含PL/SQL语句 EXCEPTION -- 异常处理部分,捕获并处理...
在Oracle中,函数和存储过程是两个非常重要的概念,它们在数据库编程和数据管理中扮演着核心角色。 Oracle数据库基础是理解函数和存储过程的基础。数据库基础涵盖了数据模型、SQL语言、数据库对象(如表、视图、...
同时,提供的数据库文件可能包含了创建存储过程的脚本,可以在Oracle数据库中执行这些脚本来创建对应的存储过程。 在实际项目中,可能还需要考虑事务管理、异常处理等细节,确保数据操作的完整性和一致性。例如,...
标题中的“JAVA 与ORACLE 存储过程及函数”是指在Java编程语言中与Oracle数据库交互时,如何使用存储过程和函数的概念。在Oracle数据库中,存储过程是一组预编译的SQL语句和PL/SQL代码,而函数则是返回特定值的存储...
理解并熟练创建、调用和管理存储过程和函数对于数据库开发者至关重要。 2. **触发器**:触发器是一种特殊类型的存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器常用于实现复杂...