`
cuiyaoonan2000
  • 浏览: 25687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

存储过程---初级教程

 
阅读更多

一 创建存储过程

CREATE OR REPLACE PROCEDURE cuiyaonan2000(存储过程名)
(
    参数1  IN  NUMBER,
    参数2  IN  NUMBER,
    参数3  OUT  Number  //如上是in表示你传递给存储过程的参数,out表示存储过程返回给你的参数.可以有多个.不同于下面的变量
) IS/AS  //这里用IS 还是用AS 随个人习惯,没有什么区别
变量1 INTEGER :=0;
变量2 DATE; //如上这些是变量是存储过程的内部变量,相当于在方法内申请的局部变量.当然有全局变量,在此不做介绍.作用就是在下面的语句块中使用,和方法内部变量一致.变量可以有多个.
BEGIN
这里是一些用if,while,for等流程语句控制的多个sql;
END cuiyaonan2000 //结束标志

 

用例环境oracle数据库 PL/SQL Developer

create or replace procedure cuiyaonan2000(a in number,b out number)IS
	first1 char;
	second2 number(1);
 	third3 number := 123;
	begin
 		NULL; 
 	EXCEPTION
 		WHEN NO_DATA_FOUND THEN
 			dbms_output.put_line('数据未找到错误');
		when others then 
			dbms_output.put_line('未知错误');
 	END;
end cuiyaonan2000;
//如上 := 是给变量赋值的 传统意义上的 等号 
//如上 := 是给变量赋值的 传统意义上的 等号
//如上exception when 就是 拦截异常 跟Try catch 一样
//No_data_found 是异常名 others指所有异常
// dbms_output.put_line 是数据库方法 如同system.out.println


二.    流程控制语句

     IF流程语句:

 

      create or replace procedure cuiyaonan2000(a in number,b out number)IS
      	first1 char;
      	second2 number(1);
      	third3 number := 123;
    	begin
      		if a > 0 then
        			begin
           			dbms_output.put_line(a);
          			b:= 123;
           			dbms_output.put_line(a);
          		end;
       		end if;
       		if third3 > 0 then
         			begin
           			dbms_output.put_line(third3);
           			third3 := third3 +1;
           			dbms_output.put_line(third3);
           		end;
           	end if;
		exception
             		WHEN NO_DATA_FOUND THEN
     				dbms_output.put_line('数据未找到错误');
			when others then 
     				dbms_output.put_line('未知错误');
     	end cuiyaonan2000;
     	//如上的传入参数a 不能再赋值,否则报错
     	//如上 := 是给变量赋值的 传统意义上的 等号
   	//b 用来接收 cuiyaonan2000存储过程返回的结果.少参数调用报错

         FOR流程语句

	create or replace procedure cuiyaonan2000(a in number,b out number)IS
       		Cursor cursor is select name from test_table_user;
    		begin
			FOR temp IN cursor LOOP
    				dbms_output.put_line(temp.name);
			END LOOP;
		exception
  			WHEN NO_DATA_FOUND THEN
     				dbms_output.put_line('数据未找到错误');
  			when others then 
     				dbms_output.put_line('未知错误');
     	end cuiyaonan2000;
     //如上 cursor 是游标 跟jdbc的游标差不多 指向一条记录.然后用循环来遍历所有查到的记录.这里for temp in 后必须是记录集合
     

 

   WHILE流程语句

	create or replace procedure cuiyaonan2000(a in number,b out number)IS
         		c number :=1;
       		begin     
          		while c < 10 LOOP 
            			begin    
              				c:= c + 1;
             				dbms_output.put_line(c);

            			end; 
          		end LOOP;
          	exception
           		WHEN NO_DATA_FOUND THEN
               			dbms_output.put_line('数据未找到错误');
         			WHEN others then 
               			dbms_output.put_line('未知错误');
     	end cuiyaonan2000;
     
     

 

这是些简单的用例,建议大家看完这些后再去研究下游标.如何调用存储过程可以在 plsql的sql命令中输入如下的代码

   //这里是 plsql sql窗口的测试写法
   //i 用来接收 cuiyaonan2000存储过程返回的结果.少参数也报错
declare 
  i integer;
begin
  cuiyaonan2000(1,i);
end;   

 

 

 

 

 

1
2
分享到:
评论

相关推荐

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    SQL Server 2005编程入门经典(第2版)之存储过程-触发器.pdf

    《SQL Server 2005编程入门经典(第2版)》是一本深入浅出的教程,涵盖了数据库管理系统SQL Server 2005的核心概念和技术。本书的重点在于讲解存储过程和触发器,这两个是数据库开发中至关重要的组件,用于实现复杂的...

    Microsoft Visual Foxpro 6.0中文版教程--初级教程

    打开“Microsoft Visual Foxpro 6.0中文版教程--初级教程.exe”,它将引导你熟悉工作环境,包括菜单栏、工具栏、命令窗口、数据表视图、项目管理器等。学习如何在这些组件间导航是初学者的第一步。 接下来,你将...

    SQL存储过程入门教程

    ### SQL存储过程入门教程 #### 一、SQL存储过程概述 在现代数据库系统中,**存储过程** 和 **触发器** 是两个非常重要的概念。它们本质上都是 SQL 语句和流程控制语句的集合,其中触发器实际上也可以视为一种特殊...

    SQL存储过程入门级教程

    "SQL存储过程入门级教程" SQL存储过程是数据库系统中的一种重要组件,它可以帮助开发者和DBA更好地管理和维护数据库。下面将详细介绍SQL存储过程的概念、优点、创建方法和应用场景等方面的知识点。 SQL存储过程...

    存储过程入门教程,适合新手

    【存储过程概述】 存储过程是数据库管理系统中的一种重要特性,它是预先编译好的SQL语句集合,用于执行特定任务。存储过程可以理解为数据库中的一个可执行对象,它封装了复杂的数据库操作,使得数据处理更加高效和...

    SQL Server 2005编程入门经典-触发器和存储过程教程

    《SQL Server 2005编程入门经典-触发器和存储过程教程》是针对初学者的一本详尽指南,旨在帮助读者深入理解SQL Server 2005中的核心概念,特别是触发器和存储过程这两大数据处理的重要工具。下面将详细阐述这两个...

    vc入门教程-从入门到精通.doc

    ### Visual C++ 入门教程知识点详解 #### 一、走进 Visual C++ ##### 1. 理解 VC 工程 - **工程文件 (dsw):** 这是 Visual C++ 中最高级别的文件类型,称为 Workspace 文件。它负责协调和管理一个或多个 Project...

    Objective-C基础教程(入门教程).pdf

    2. HelloWorld程序:这是任何编程语言入门教程中的经典示例,用于展示如何输出最基本的文本信息。Objective-C中的HelloWorld程序通常包含导入Foundation框架、创建一个主函数以及打印输出。 3. 类(Classes):在...

    C#教程----快速入门

    ### C# 快速入门教程知识点汇总 #### 第一章:C#语言基础 - **C#语言特点**(第12页) - C#是一种面向对象的、基于公共语言运行时(CLR)的现代编程语言。 - 它支持垃圾回收机制,可以自动管理内存,减少了内存...

    C++入门基础教程--全套

    本套" C++入门基础教程--全套 "旨在为新手提供全面的C++学习路径。 教程首先会介绍C++的历史和特点,让你了解其在编程世界中的地位。接着,会引导你进入编程的基础概念,包括变量、数据类型、常量、运算符等。这些...

    msql存储过程经典教程

    ### MySQL 5.0 存储过程经典教程知识点解析 #### 一、引言 本文档作为MySQL 5.0新特性的入门指南,旨在帮助MySQL的老用户们快速理解和掌握新版本中的存储过程功能。存储过程是数据库管理系统(DBMS)中一项重要的...

    UNIX初级教程(第五版)----国外经典教程

    本教程为《UNIX初级教程(第五版)》,是一本面向初学者的国外经典教程,由经验丰富的教授或专家编写,旨在帮助读者快速掌握UNIX操作系统的基本知识和操作技能。教程内容涵盖了UNIX系统的历史、基本概念、用户界面、...

    C++-入门教程-10

    《C++入门教程-10:职工管理系统》 在C++编程的学习过程中,构建实际的应用程序是提升技能的重要环节。本教程聚焦于一个常见的管理软件——职工管理系统,通过这一实例,我们将深入理解C++面向对象编程的核心概念。...

    S7-300教程从入门到精通(官方中文版).pdf

    S7-300教程从入门到精通(官方中文版) 本教程旨在讲解S7-300 PLC的结构、组成、编程和应用,以帮助读者快速掌握S7-300 PLC的使用和编程。 PLC 的结构和组成 S7-300 PLC属于模块式 PLC,主要由机架、CPU 模块、...

    自己整理的SQL存储过程教程

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该过程需要参数)来调用执行。它允许程序员将复杂的业务逻辑封装为一个可...

    03-2013-昆仑通态-Hi培训-初级教程-V3.2

    《昆仑通态MCGS初级教程-V3.2:嵌入式系统与PLC通讯详解》 本教程主要聚焦于昆仑通态的MCGS嵌入版软件以及TPC1561Hi这款工业级嵌入式人机界面(HMI)设备。其目标在于帮助用户全面了解TPC1561Hi产品特性,掌握MCGS...

    sap sem-bw中文教程-入门篇

    ### SAP SEM-BW中文教程-入门篇 #### 一、SAP BW 是什么? SAP BW(Business Warehouse),即SAP商务信息仓库,是SAP公司提供的数据仓库解决方案。它能够从SAP R/3系统以及其他非SAP系统中抽取数据,并对其进行...

Global site tag (gtag.js) - Google Analytics