--######################################--
--存储过程
--王林 2012.07.06
--######################################--
/*
1、存储过程不能作为右操作数,也不能用于SQL语句中。一般通过形参列表将数据传入或传出PL/SQL存储过程。
2、定义过程时,形参可有可无。过程中的形参可以是存储过程中的值传递变量或引用传递变量。
3、引用传递变量有两种:in和out模式,如果没有提供参数模式,过程创建时就假定模式为值传递。
4、和存储函数一样,可以在过程的声明部分定义局部变量的命名块程序。
5、在命令窗口执行存储过程。
*/
CREATE OR REPLACE PROCEDURE procedure_name
( parameter1 IN/OUT sql_datetype --存储过程参数不带取值范围
, parameter2 IN/OUT sql_datetype --类型可以使用Oralce中任意合法的类型
, parameter3 IN/OUT sql_datetype --in 表示传入 out 表示传出
)
IS
--变量带取值范围
_variable _type(_RANGE);
BEGIN
excution_statements;
EXCEPTION
--在代码中抛异常用RAISE+异常名
exception_handing_statements;
END procedure_name;
--######################################--
--1.存储过程(无参数)
--语法
CREATE OR REPLACE PROCEDURE Demo_Proc_Name
IS
--声明变量(变量名 变量类型)
BEGIN
--存储过程的执行体
NULL;
EXCEPTION
--异常部分
exception_statement;
END Demo_Proc_Name;
--注:
--IS关键字表明后面将跟随一个PL/SQL体,
--BEGIN表明PL/SQL体开始,
--NULL表明PL/SQL体什么事情也不做,这句不能删去,因为PL/SQL体中至少包含一条语句,
--END关键字表明PL/SQL体结束
--Demo1:
CREATE OR REPLACE PROCEDURE Demo_Proc_Name
IS
v_time VARCHAR2 (20) := '2012.12.20';
BEGIN
DBMS_OUTPUT.put_line('The end of the world day is:');
DBMS_OUTPUT.put_line(v_time);
END Demo_Proc_Name;
--SQL Command->编译->执行:
exec Demo_Proc_Name
--Demo2:
CREATE OR REPLACE PROCEDURE Demo_Proc_Name
IS
v_time VARCHAR2 (20);
BEGIN
v_time:= '2012.12.20';
DBMS_OUTPUT.put_line('The end of the world day is:');
DBMS_OUTPUT.put_line(v_time);
END Demo_Proc_Name;
--SQL Command->编译->执行:
exec Demo_Proc_Name
--######################################--
--2.存储过程(带输入参数)
--语法
CREATE OR REPLACE PROCEDURE Demo_Proc_Name( v_in_para IN type1)
AS
BEGIN
NULL;
EXCEPTION
exception_statement;
END Demo_Proc_Name;
--Demo3:
CREATE OR REPLACE PROCEDURE Demo_Proc_Name(v_in_para IN VARCHAR2)
IS
BEGIN
DBMS_OUTPUT.put_line('My name is:');
DBMS_OUTPUT.put_line(v_in_para);
END Demo_Proc_Name;
--SQL Command窗口->编译->执行:
exec Demo_Proc_Name('Wang Lin')
--######################################--
--3.存储过程(带输出参数)
--语法
CREATE OR REPLACE PROCEDURE Demo_Proc_Name( v_out_para OUT type1)
AS
BEGIN
NULL;
EXCEPTION
exception_statement;
END Demo_Proc_Name;
--Demo4:
CREATE OR REPLACE PROCEDURE Demo_Proc_Name(v_out_para OUT VARCHAR2)
IS
BEGIN
v_out_para:='Wang Lin';
DBMS_OUTPUT.put_line('My name is:');
DBMS_OUTPUT.put_line(v_out_para);
END Demo_Proc_Name;
--SQL Command窗口->编译->执行:
--定义一个变量 用来存储输出的值
var p varchar2 (20)
--引用变量的时候要在前面加:
exec Demo_Proc_Name(:p)
--######################################--
--4.存储过程(带输入输出参数)
--语法
CREATE OR REPLACE PROCEDURE Demo_Proc_Name( v_in_out_para IN OUT type1)
AS
BEGIN
NULL;
EXCEPTION
exception_statement;
END Demo_Proc_Name;
--Demo5:
CREATE OR REPLACE PROCEDURE Demo_Proc_Name(v_in_out_para IN OUT VARCHAR2)
IS
v_temp VARCHAR2 (20);
BEGIN
v_temp:=v_in_out_para;
v_in_out_para:='I''m '||v_in_out_para;
END Demo_Proc_Name;
--SQL Command窗口->编译->执行:
--定义一个变量 用来存储输入输出的值
var p varchar2 (20)
--给输入参数赋值
exec :p:='Wang Lin'
--此时的P为输出参数,引用变量的时候要在前面加:
exec Demo_Proc_Name(:p)
分享到:
相关推荐
Oracle PL/SQL是Oracle数据库系统中的重要组成部分,它是一种结合了SQL查询语言和过程化编程元素的编程语言,专门用于在Oracle环境中进行数据库管理和应用程序开发。这个“Oracle PL-SQL.rar”压缩包提供了针对初学...
PL/SQL是Oracle数据库特有的编程语言,它是SQL的扩展,允许编写存储过程、函数、触发器等。`pl_sql`标签表明,这份资料可能包含了关于PL/SQL的基础和高级概念,比如块结构(DECLARE, BEGIN, END)、异常处理(TRY-...
在Oracle数据库环境中,PL/SQL被广泛用于开发存储过程、函数、触发器、游标和包,以实现复杂的业务逻辑和数据处理任务。本文将深入探讨Oracle PL/SQL的相关知识点,并结合Java进行集成开发。 1. **PL/SQL基础** - ...
在IT行业中,Oracle数据库系统是企业级数据管理的首选,而PL/SQL是Oracle数据库的内置编程语言,用于实现复杂的数据库操作和业务逻辑。本文将深入探讨如何利用PL/SQL结合Web技术来构建一个功能丰富的网上商店。我们...
Oracle PL/SQL是Oracle数据库系统中的重要组成部分,用于开发存储过程、函数、触发器等数据库对象,以及执行复杂的SQL操作。以下是对Oracle PL/SQL及其相关知识点的详细说明: 1. **Oracle数据库基础**:Oracle...
1. **PL/SQL简介**:PL/SQL是Oracle数据库的内置编程语言,用于创建存储过程、函数、触发器和包。它的语法基于SQL,但增加了流程控制、异常处理和数据类型等特性。 2. **变量和数据类型**:PL/SQL支持多种数据类型...
Oracle SQL是Oracle数据库特有的SQL方言,它扩展了标准SQL,增加了许多高级功能,如物化视图、分区表、存储过程、触发器等。在"oracle常用命令集.sql"中,可能包含了如DML(INSERT、UPDATE、DELETE)语句,DDL...
标题中的“PLSQL.rar_oracle_pl sql_plsql_plsql_java_sql”暗示了这是一个关于Oracle数据库中PLSQL使用的资源包,可能包含了PLSQL的教程、示例代码和与Java集成的相关信息。Oracle数据库是世界上最广泛使用的数据库...
在Oracle中,PL/SQL还可以用于创建存储过程和函数,这些可以在数据库级别执行,提高了性能和效率。例如,你可以创建一个存储过程来批量更新数据或执行复杂的业务逻辑。 学习Oracle PL/SQL,你需要理解SQL的基础语法...
3. **PL/SQL增强**:PL/SQL支持了匿名块、存储过程、函数、触发器等,11g版本中增加了异常处理的灵活性,以及对游标的改进,使得处理大量数据时更加高效。 4. **数据仓库与OLAP**:Oracle 11g支持快速的数据加载和...
Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与高级编程语法相结合,用于在Oracle数据库环境中构建复杂的业务逻辑和应用程序。Oracle8是PL/SQL的一个早期版本,尽管现在可能已经更新到了更高版本,...
PL/SQL是Oracle数据库系统中用于编写存储过程、函数、触发器等数据库编程的结构化查询语言,扩展了SQL的功能,使得数据库管理员和开发人员能够进行更复杂的数据库操作和管理。Allround Automation PL-SQL Developer...
PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库系统中的一个重要的编程组件,它结合了SQL(结构化查询语言)的查询功能与过程性编程语言的特点。PL/SQL允许开发者编写复杂的数据库...
Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...
PL/SQL是Oracle数据库系统中的一个重要组成部分,它是一种结合了SQL与过程编程的语言,用于在Oracle环境中编写存储过程、函数、触发器等数据库对象。本资料主要涵盖了PL/SQL的基本语法以及数据的增删改查操作和视图...
《ORACLE_PL_SQL实战精讲》是一本专为PL/SQL开发者设计的指南,它深入浅出地介绍了Oracle数据库中的编程语言PL/SQL。PL/SQL是Oracle数据库系统中的核心组件,用于创建复杂的业务逻辑和数据处理程序。本书旨在帮助...
《精通Oracle_10g_PL/SQL编程》是一套针对Oracle数据库系统中PL/SQL编程语言的深度学习教程,分为上下两册。这套书籍旨在帮助读者从基础到高级全面掌握Oracle 10g版本的PL/SQL编程技术,无论你是初学者还是有经验的...
Oracle PL/SQL 入门教程是针对初学者的教程,主要涵盖了如何使用PL/SQL这一Oracle数据库的编程语言。PL/SQL是Oracle数据库系统中的一种结构化查询语言,它结合了SQL的功能并增加了过程性编程元素,使得开发者能够...
5. OracleParameter:用于在OracleCommand中传递参数,无论是执行SQL语句还是存储过程,都可以通过这个对象传递输入、输出或输入/输出参数。 在"DatabaseHelper"这个类中,通常会封装这些组件,提供一些静态或实例...