`

Oracle_PL_ SQL_ 教程:存储过程

 
阅读更多
--######################################--
--存储过程
--王林 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)

 

1
3
分享到:
评论
1 楼 datawarehouse 2012-07-12  
只能说入门

相关推荐

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user ||', Good ...

    oracle pl/sql 存储过程和函数与触发器

    oracle pl/sql 存储过程和函数与触发器

    oracle-plsql.zip_oracle_pl sql 分组查询_plsql_plsql 分组查询

    单行查询 分组查询 多表查询 子查询 高级查询 高级查询 数据字典 约束 视图 索引 游标 函数 存储过程 触发器 事务管理 用户管理 备份 恢复

    Oracle--biancheng.rar_oracle_oracle cursors _sage _存储过程

    设有学生表student(学号sno, 姓名sname, 年龄 sage,系别dept)、课程表Course(课程号cno,课程名称cname)和选课表sc(学号sno,课程号cno,成绩grade),用Oracle PL/SQL语言设计一个名为pkg_student程序包,要求: ...

    Oracle9i PL_SQL程序设计(英文含中文包)

    PL/SQL Developer是一种集成的开发环境,专门用于开发、测试、调试和优化Oracle PL/SQL存储程序单元,比如触发器等。PL/SQL Developer功能十分全面,大大缩短了程序员的开发周期。强大的PL/SQL编辑器,完善的Debugger...

    Oracle_PLSQL语言基础

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL...

    Oracle存储过程LP/SQL练习题(含答案)

    Oracle存储过程LP/SQL练习题(含答案) 几个练习题

    Oracle10g_PL_SQL_编程讲义

    主要内容:PL/SQL 语言的基本特征、PL/SQL程序的结构、PL/SQL语言的控制结构、游标(cursor)编程、错误处理、存储过程和函数、创建包(Package)、触发器(Trigger)。

    Oracle PL/SQL语言初级教程

    讲解oracle中的pl/sql的使用,存储过程,游标,函数,程序包,触发器。等等。

    PL_SQL_oracle_数据库_导入导出

    PLSQL是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。

    Oracle_PLSQL_语法详细手册

    oracle_PLSQL_语法详细手册 目 录 第一部分 SQL语法部分 3 一、 CREATE TABLE 语句 3 二、 CREATE SEQUENCE语句 5 ...四、 存储过程 54 五、 存储函数 54 六、 PACKAGE 54 七、 触发器 56 八、 应用实例 58

    Oracle PL SQL

    走进Oracle、认识PL/SQL、数据表的基本操作、表中数据的基本操作、数据的基本查询、查询中函数的使用、数据表的高级查询、索引及视图的使用、数据类型、流程控制、游标、存储过程和函数、触发器、异常处理、事务和锁...

    Oracle存储过程和触发器(PL/SQL入门教程)

    Oracle存储过程和触发器(PL/SQL入门教程) Oracle存储过程和触发器(PL/SQL入门教程)

    oracle PL_SQL 教程

    oracle 教程 是我的学习笔记。 关于 存储过程(procedure) , 函数(function) 游标(curser) , 任务(job) 等都有详细的说明了实例演示, 每个实例都是经过测试的。

    Oracle数据库SQL和PL/SQL实例教程

    Oracle数据库SQL和PL/SQL实例教程 非常适用于初学者。结合例子深刻形象的讲解。 第1章 关系数据库与SQL语言环境 第2章 数据查询 第3章 数据操作 第4章 表和视图 第5章 其他数据库对象 第6章 SQL基础 第7章 游标和...

    解决 PL/SQL Developer提示:无法锁定oci dll

    1.下载资源oracle-instantclient-windows.x64-19.3.0.0.0dbru 解压自己存储盘符 例如:d:\instantclient_19_3 2.设置PLSQL Developer 连接菜单下 Oracle 主目录名:d:\instantclient_19_3 OCI库:d:\instantclient_...

    ORACLE PL/SQL 存储过程 触发器

    ORACLE PL/SQL 存储过程 触发器 ORACLE PL/SQL 存储过程 触发器 子程序 游标

    烟气制酸实时监控与调度系统中Oracle PL_SQL存储过程的应用.pdf

    烟气制酸实时监控与调度系统中Oracle PL_SQL存储过程的应用.pdf

    C++ 嵌入匿名ORACLE PL/SQL存储过程

    代码演示c++ builder 中嵌入 Oracle PL/SQL 存储过程,可以参照此例,使开发有更大的灵活性。

Global site tag (gtag.js) - Google Analytics