`
maziheng
  • 浏览: 58182 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

简单的存储过程、函数

阅读更多
存储过程包括3个部分,定义部分、执行部分、例外处理部分
使用前 先执行set serveroutput on;
1、最简单的存储过程
begin 
  		null; 
  	end; 
	  /

或者
 
begin
  		DBMS_OUTPUT.PUT_LINE('This is First Prccedure!');
	end;
	/

2、带有定义部分的存储过程(v_str是定义的字符串类型的变量)
declare
	  v_str varchar2(100) :='This is second procedure!';
	begin 
	  DBMS_OUTPUT.PUT_LINE(v_str);
	end;
	/
或者
 
declare
  		v_str varchar2(100) ;
  	begin 
  		SELECT 'This is second procedure!' INTO v_str FROM DUAL;
  		DBMS_OUTPUT.PUT_LINE(v_str);
  	end;
	/

3、带有例外处理部分的存储过程
 
Declare 
  		v_name varchar(2);
  	Begin
  		SELECT sname INTO v_name FROM student WHERE sid=&sid;
  	Exception
  		when NO_DATA_FOUND then
  		DBMS_OUTPUT.PUT_LINE('请输入正确的SID!');
	 End;
	/

4、带名字但不带参数的存储过程
create or replace procedure first_pro
is
begin
   DBMS_OUTPUT.PUT_LINE('带名字但不带参数的存储过程!');
end;
执行存储过程
Exec first_pro();
call first_pro();

5、带名字且带出入参数和传出参数的存储过程
create or replace procedure second_pro(p_sid in number, p_sname out varchar2,p_cid in out number)
is
begin
   select sname, c_id into p_sname,p_cid from student where sid=p_sid;
end;

调用该存储过程
declare
  v_name varchar2(20);
  v_cid number;
begin
  second_pro(2,v_name,v_cid);
  dbms_output.put_line('v_name='||v_name);
  dbms_output.put_line('v_cid='||v_cid);
end;

6、没有传出只有传入参数的存储过程
create or replace procedure third_pro(p_sid in number,p_sname varchar2)
is
begin
      update student set sname = p_sname where sid=p_sid;
End;
调用该存储过程
Exec third_pro(100,'Mary');
Call third_pro(100,'Lily');

7、一个返回值的函数
create or replace function first_fun(p_sid number)
return varchar2
is v_name varchar2(20);
begin
   select sname into v_sname from student where sid=p_sid;
   return v_sname;
end;
调用
Select first_fun(100) from dual;

8、多个返回值的函数
create or replace function first_fun(p_sid number,p_sname out varchar2)
return number
is v_cid number;
begin
   select sname,c_id into p_sname,v_cid from student where sid=p_sid;
   return v_cid;
end;
调用
declare
	v_name varchar2(20);
	v_cid number;
begin
	v_cid:=first_fun(100,v_name);
	dbms_output.put_line('v_name='||v_name);
	dbms_output.put_line('v_cid='||v_cid);
end;
分享到:
评论

相关推荐

    原创sql存储过程函数范例

    原创sql存储过程函数范例,一是为了自己方便查找,今天到公司因为没有我保存的一些范例,一个简单的例子写了半个小时,如果有范例直接套几分钟肯定搞定,所以索性上传到CSDN上,何时何地都能找到我的范例了。...

    存储过程,存储函数和触发器

    存储过程是一种预编译的SQL代码块,它被存储在数据库中,并且可以通过简单的调用来执行复杂的逻辑操作。存储过程可以提高应用程序的性能,减少网络流量,增强数据完整性,并简化应用程序开发。 #### 创建存储过程 ...

    PLSQL程序设计-存储过程函数触发器

    ### PL/SQL程序设计——存储过程、函数与触发器 #### 概述 PL/SQL是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据操纵功能和传统编程语言的流程控制功能,使得开发者能够在数据库环境中编写更为复杂...

    存储过程 函数

    编写存储过程和函数通常涉及SQL语法,例如在MySQL中,我们可以这样创建一个简单的存储过程: ```sql CREATE PROCEDURE `myProcedure`(IN param1 INT, OUT param2 VARCHAR(50)) BEGIN SELECT 'Hello, ' AS `msg`, ...

    java存储过程函数

    存储过程,oracle写得简单存储过程函数,java环境

    oracle存储过程函数和程序包.ppt

    Oracle 存储过程函数和程序包 Oracle 存储过程函数和程序包是 Oracle 数据库中的一种核心组件,用于实现复杂的业务逻辑和数据处理。以下是 Oracle 存储过程函数和程序包的知识点总结: 一、游标的概念和类型 游标...

    MySQL数据库函数,触发器,存储过程

    例如,创建一个简单的存储过程来计算员工的总薪水,可以这样编写: ```sql CREATE PROCEDURE calculate_total_salary(IN emp_id INT) BEGIN DECLARE total DECIMAL(10,2); SELECT SUM(salary) INTO total FROM ...

    Oracle存储过程、游标、函数的详解

    ### Oracle存储过程、游标、函数的详解 #### 一、概述 在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作...

    oracle中的存储过程.函数,包

    创建一个简单的存储过程如下: ```sql CREATE OR REPLACE PROCEDURE my_procedure (p_no NUMBER) IS BEGIN -- 执行语句 END; ``` 其中`CREATE OR REPLACE`表示如果已经存在同名的存储过程,则替换掉原有的存储...

    orcal存储过程和函数操作大全

    ### Oracle 存储过程和函数操作详解 #### 一、PL/SQL简介 PL/SQL (Procedural Language for SQL) 是一种专为 Oracle 数据库设计的过程化语言,它允许开发者编写可重用的数据库程序代码。PL/SQL 结合了 SQL 的数据...

    存储过程函数,触发器

    在数据库管理中,存储过程(Stored Procedures)和函数以及触发器是重要的数据库编程元素,它们在数据管理和业务逻辑实现上发挥着关键作用。本篇将深入探讨这些概念及其应用。 **存储过程** 存储过程是一组预编译的...

    存储过程和函数

    在上述内容中,展示了如何创建一个简单的空存储过程`test_proce`,它没有实际的操作,仅仅是为了演示创建过程的基本语法。接着,创建了一个`time_proce`存储过程,它能在控制台上打印当前系统时间,这通过`DBMS_...

    存储过程函数触发器

    在数据库系统中,存储过程、函数和触发器是三个核心概念,它们对于数据管理与业务逻辑的实现至关重要。本文将详细解析这些知识点,并通过提供的压缩包文件中的示例进行讲解。 1. 存储过程(Stored Procedures): ...

    MYSQL的存储过程和函数简单写法

    【MySQL存储过程与函数简介】 MySQL的存储过程和函数是数据库管理中强大的工具,它们允许开发者将一组SQL语句组织在一起,形成一个可重用的模块,以执行复杂的业务逻辑。这种概念类似于高级编程语言(如Java)中的...

    练习利用PLSQL Developer编写和管理存储过程、存储函数和触发器等

    PLSQL Developer中存储过程、存储函数和触发器的编写和管理 PLSQL Developer是一种功能强大的Oracle数据库开发工具,提供了许多功能来帮助开发者快速编写和管理存储过程、存储函数和触发器等高级数据库对象。本文将...

    数据库函数、存储过程详解

    例如,以下是一个简单的存储过程示例,它接受一个参数,然后根据该参数查询表中的数据: ```sql CREATE PROCEDURE GetEmployeeByDepartment(@departmentID int) AS BEGIN SELECT * FROM Employees WHERE ...

    java存储过程函数案例.ppt

    Java存储过程和函数是数据库操作中的重要组成部分,它们在Java应用程序与数据库交互时起到关键作用。存储过程是在数据库中预编译的SQL语句集合,而函数则返回一个值。这两种技术都允许开发者封装复杂的逻辑,提高...

    存储过程和存储函数1

    【存储过程和存储函数1】知识点详解 存储过程和存储函数是数据库管理中的重要概念,它们允许开发者将一系列SQL语句组合成一个可重用的模块。这些模块化操作不仅提高了代码的复用性,还能优化数据库性能,减少客户端...

    第15章_存储过程与函数.docx

    存储过程和函数能够将复杂的 SQL 逻辑封装在一起,应用程序无须关心存储过程和函数内部复杂的 SQL 逻辑,而只需要简单地调用存储过程和函数即可。 什么是存储过程? 存储过程是指预先编译的一组 SQL 语句集,将其...

    Orcale存储过程,游标,函数,简单易懂

    - 示例:创建一个简单的无参存储过程 `hello`。 ```sql CREATE OR REPLACE PROCEDURE hello AS BEGIN DBMS_OUTPUT.PUT_LINE('这是我第一个存储过程,慌不慌!'); END; / ``` 4. **删除存储过程**: - ...

Global site tag (gtag.js) - Google Analytics