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

Oracle PLSQL 学习笔记(块、控制结构、过程、函数、包)

阅读更多

Oracle PL/SQL 学习笔记

一、PL/SQL

块定义语法:

DECLARE

/*

       定义部分——定义常量、变量、复杂数据类型、游标

*/

BEGIN

/*

       执行部分——PL/SQL语句和SQL语句

*/

EXCEPTION

/*

       异常处理部分——处理运行错误

*/

       END;

       注:PL/SQL中结束输入使用‘/’字符

 

dbms_output.put_line(“输出的字符串内容”);

dbms_outputoracle提供的系统包;put_line    是该包中的过程,用于输出字符串信息。当使用dbms_output包时必须要先激活服务器输出

激活服务器输出语句: set serveroutput on

 

示例:

DECLARE

       str          varchar(5)    --变量的定义

BEGIN

       Select name INTO str FROM emp        --INTO是将name的值赋值给str

where empno=$no;    --$no是替代变量

EXCEPTION

         When NO_DATA_FOUND then         --PL/SQL预定义的异常类型

         dbms_output.put_line(“输出的字符串内容”);

END;

 

变量定义语法:

变量名 [CONSTANT] 数据类型 [NOT NULL] [:=|DEFAULT 默认值或函数]

--CONSTANT表示常量;

--:=设置默认值

 

%TYPE属性

示例:

Name    emp.ename%TYPE          --nameemp表中ename列的类型和长度相同

Sex         Name%TYPE                    --sexname类型和长度相同

 

%ROWTYPE属性

语法:

变量名         表名%ROWTYPE

示例:

Str   T1%ROWTYPE           

--str变量对应T1表中所有列,并且该表中的所有列的类型与长度相同

 

 

PL/SQL中使用的操作符

:=           --赋值操作符

=>      --关联操作符

||           --连接操作符

 

PL/SQL游标

游标定义语法:

CURSOR              游标名         IS    SQL语句

 

游标名%ISOPEN        判断游标是否已经打开

游标名%FOUND        SQL语句有作用行市,其属性值为TRUE

游标名%NOTFOUND SQL语句没有作用行市,其属性值为TRUE

游标名%ROWCOUNT       返回SQL语句所作用的总行数

 

注:游标名默认为‘SQL

 

二、           PL/SQL控制语句

1、分支语句

IF    条件      THEN     执行操作

ELSEIF 条件THEN     执行操作

ELSE       执行操作

END      IF;

2、多重分支语句

CASE      表达式

WHEN    要判断的值        THEN     执行操作

WHEN    要判断的值        THEN    执行操作

ELSE      执行操作

END      CASE;

3、循环语句一

WHILE   条件      LOOP

执行操作···

END      LOOP;

4、循环语句二

FOR              变量      IN    [REVERSE]    起点值 ..终点值 LOOP

执行操作

END              LOOP;

注:REVERSE表示由终点值到起点值循环; ..是固定格式

 

三、           存储过程

创建过程语法:
create [or replace] procedure procedure_name
[ (argment [ { in| in out }] type,
argment [ { in | out | in out } ] type
{ is | as }
<
类型.变量的说明>
(
: 不用 declare 语句
)
Begin
<
执行部分
>
exception
<
可选的异常处理说明
>
end;

l
这里的IN表示向存储过程传递参数,OUT表示从存储过程返回参数。而IN OUT 表示传递参数和返回参数;

l
在存储过程内的变量类型只能指定变量类型;不能指定长度;

l
ASIS 后声明要用到的变量名称和变量类型及长度;

l
ASIS 后声明变量不要加declare 语句。


示例:
CREATE OR REPLACE PROCEDURE ModeTest (
p_InParameter IN NUMBER,
p_OutParameter OUT NUMBER,
p_InOutParameter IN OUT NUMBER) IS

过程体

v_LocalVariable NUMBER; --
定义变量

BEGIN
/*
分配p_InParameterv_LocalVariable.p_InParamete表示值*/
v_LocalVariable := p_InParameter; --
合法


/*
分配 7 p_InParameter. 这是非法的,因为声明是IN p_InParamete表示值,即值不能給值*/
p_InParameter := 7; --
非法


/*
分配7p_ OutParameter. 这是合法的,因为声明是OUTp_ OutParameter表示变量 */
p_OutParameter := 7; --
合法


/*
分配 p_OutParameter v_LocalVariable.这是非法的,因为声明是OUTp_ OutParameter表示变量,即变量不能给变量*/

v_LocalVariable := p_outParameter; --
非法

/*
分配 p_InOutParameter v_LocalVariable. 这是合法的,因为声明是
IN OUT */
v_LocalVariable := p_InOutParameter; --
合法


/*
分配 7 p_InOutParameter. 这是合法的,因为声明是
IN OUT */
p_InOutParameter := 7; --
合法

END ModeTest;
/

 

过程的调用:

EXEC [UTE] 过程名 (参数1 ,参数2…);

 

四、           函数

创建语法

create [or replace ] function 函数名

[(参数1 [in | out | in out] 参数类型,参数2 [in | out | in out] 参数类型,……)]

return 数据类型

is | as

begin

执行部分

exception

异常处理部分

end [函数名];

 

 

五、          

1、  包规范创建语法

create [or replace] package 程序包名

is | as

procedure 过程名(过程参数列表);

function 函数名(函数参数列表);

……

end 程序包名;

 

 

2、  包体创建语法

create [or replace] package body 程序包名

is | as

之前定义的函数、过程的具体实现部分

end 程序包名;

 

3包的调用

exec 程序包名.过程名(参数列表);

 

 

 

分享到:
评论

相关推荐

    oracle plsql编程学习笔记

    PL/SQL作为Oracle数据库的核心编程语言,提供了丰富的功能,包括但不限于表操作、过程函数开发、错误处理、变量管理、包机制等。掌握这些基础和进阶技能,对于高效进行数据库编程和维护至关重要。通过实践以上知识点...

    PLSQL学习笔记(1-7)

    本“PLSQL学习笔记”将逐步讲解这些概念,通过实例和练习帮助读者巩固理解,进一步提升在Oracle数据库开发中的技能。无论你是初学者还是有经验的开发者,这份笔记都能提供有价值的参考。通过深入学习和实践,你将...

    oracle plsql 菜鸟学习笔记

    通过本文,我们可以了解 Oracle PL/SQL 的基础知识点,包括变量命名规则、过程和函数的创建、PL/SQL 块结构、变量和常量、游标、异常处理、包的创建和使用、记录类型、输出信息等。这些知识点是 Oracle PL/SQL 编程...

    Oracle SQL & PLSQL学习笔记

    PL/SQL(Procedural Language/SQL)是 Oracle 的一种过程式语言,结合了 SQL 与传统的编程语言特性,用于编写存储过程、函数、包等高级数据库程序。它扩展了 SQL 的功能,使开发者能够创建复杂的业务逻辑和数据库...

    PLSQL 学习笔记

    【PLSQL学习笔记】 PLSQL(Procedural Language/Structured Query Language)是Oracle数据库系统中的一个强大编程语言,它结合了SQL的查询能力与过程式编程语言的特点,为数据库开发提供了丰富的功能。这篇学习笔记...

    sql和plsql学习笔记

    - 包(Package):将相关的过程、函数和变量打包在一起,提供模块化的代码组织。 3. Oracle数据库特性: - 表空间:Oracle数据库的数据存储逻辑单位,用于管理数据库的物理存储。 - 触发器:自动执行的PL/SQL...

    PLSQL学习笔记

    PL/SQL是Procedural Language/SQL的缩写,由Oracle公司开发,它扩展了SQL的功能,允许开发者编写带有控制结构、异常处理和存储过程的程序块。PL/SQL的程序单元包括过程、函数、包、触发器等,可以用于处理复杂的...

    精通oracle 10g plsql 编程-学习笔记

    ### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望...08-PLSQL和游标结合学习笔记.txt 09-游标学习笔记.txt 10-重要的函数的学习笔记.txt 11-存储过程学习笔记.txt 12-触发器学习笔记.txt 13-pl编码.txt

    ORACLE_PlSql-甲骨文学习笔记

    ### ORACLE_PlSql-甲骨文学习笔记 #### 一、创建表 ##### 创建表一 ```sql CREATE TABLE TABLE_NAME ( AAA INTEGER CONSTRAINT PK_TABLE_NAME PRIMARY KEY, BBB VARCHAR2(10) NOT NULL, DOB DATE, CCC VARCHAR...

    Oracle 10g 学习笔记

    │ ORACLE学习笔记(二)oracle的逻辑结构 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - CSDN博客.mht │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - ...

    plsql学习笔记整理.docx

    PL/SQL 学习笔记总结 PL/SQL 是 Oracle 在标准 SQL 语言上的扩展,提供了更多的编程功能,例如定义变量和常量、使用条件语句和循环语句、例外处理等。使用 PL/SQL 可以提高开发效率和数据库性能。 PL/SQL 的优点 ...

    学习oracle笔记-PLSQL

    3. **强大的数据库过程语言**:PL/SQL提供了丰富的数据类型和控制结构,支持面向对象编程特性,能够满足复杂的数据处理需求。 4. **跨语言调用能力**:编写在Oracle中的过程和函数可以通过Java等其他语言进行调用,...

    oracle数据库学习笔记

    ### Oracle 数据库学习笔记 #### Oracle DML 数据库操作语言 - **数据插入**: 在 Oracle 数据库中,可以通过 `INSERT` 语句将一个表的部分数据插入到另一个表中。例如,利用 `INSERT INTO table_name (subquery)` ...

    Oracle9i PLSQL 入门到精通读书笔记

    通过阅读“Oracle9i PLSQL 入门到精通”这本书,读者可以系统地学习如何使用PLSQL进行数据库编程,从简单的数据操作到复杂的业务逻辑实现,逐步提升为数据库专家。书中的实例和实践项目将帮助读者巩固理论知识,提高...

    Java3相关课程系列笔记之三PLSQL学习笔记.doc

    PL/SQL是Oracle数据库的一种过程化语言,它将SQL语句与控制结构相结合,为数据库应用程序提供了强大的编程能力。PL/SQL不仅支持数据查询和更新,还能执行复杂的业务逻辑和事务处理。 1.1 什么是PL/SQL PL/SQL由三...

Global site tag (gtag.js) - Google Analytics