原文参考:http://plsql-tutorial.com/

组成:

  • 声明部分(可选)
  • 执行部分(必选)
  • 异常处理(可选)
 
    明:
        DECLARE
 
    执行:
        BEGIN
            ...
        END
 
    异常处理:
        EXCEPTION
 
每个语句必须以“;”结束;
PL/SQL Block可嵌套;
/表示执行PL/SQL块;

优点:
  块结构
         可嵌套,任务或者逻辑模块的集合,可存储在数据库里重用
 
  支持过程化语言
          包含如条件判断语句和循环等过程化语句结构
 
  高性能
          多条SQL语句一起执行,减少了网络通信
 
  异常处理
          异常发生时,可以指定执行特定操作或者返回异常信息
 

PL/SQL变量和常量

变量

格式:

variable_name datatype [NOT NULL := value ]; 
例子:
dept varchar2(10) NOT NULL := “HR Dept”;
 
指定变量值的两种方式:

1)   variable_name:= value;

2)

SELECT column_name

INTO variable_name

FROM table_name

[WHERE condition];

 
变量范围:
  • Local variables -定义在嵌套块里,不能被外部块访问
  • Global variables - 定义在外部块里,可以供自己使用,也可以被其里面的嵌套块使用。

常量

格式:

constant_name CONSTANT datatype := VALUE; 
例子:
salary_increase CONSTANT number (3) := 10;

pl/Sql Record 记录

定义和声明pl/Sql Record的几种方式:

语法格式

用途

TYPE record_type_name IS RECORD (column_name1 datatype, column_name2 datatype, ...);

Define a composite datatype, where each field is scalar.

col_name table_name.column_name%type;

Dynamically define the datatype of a column based on a database column.

record_name record_type_name;

Declare a record based on a user-defined type.

record_name table_name%ROWTYPE;

Dynamically declare a record based on an entire row of a table. Each column in the table corresponds to a field in the record.
 
Record设置和获取记录:
语法格式

用途

record_name.col_name := value;

To directly assign a value to a specific column of a record.

record_name.column_name := value;

To directly assign a value to a specific column of a record, if the record is declared using %ROWTYPE.

SELECT col1, col2 INTO record_name.col_name1, record_name.col_name2 FROM table_name [WHERE clause];

To assign values to each field of a record from the database table.

SELECT * INTO record_name FROM table_name [WHERE clause];

To assign a value to all fields in the record from a database table.

variable_name := record_name.col_name;

To get a value from a record column and assigning it to a variable.

 

PL/SQL学习(一)的更多相关文章

  1. ORALCE PL/SQL学习笔记

    ORALCE  PL/SQL学习笔记 详情见自己电脑的备份数据资料

  2. Oracle之PL/SQL学习笔记

    自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...

  3. Oracle PL/SQL学习之Hello World(0)

    1.PL/SQL是Oracle数据库的一大创举,让一些复杂繁琐的常规主流编程代码做的编码处理过程,只需要在PL/SQL中使用简短的几句代码就可以解决,并且准确高效.那么遵循惯例,我们学习PL/SQL编 ...

  4. 浅析Oracle PL/SQL 学习--未完待续

    这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

  5. [Oracle] PL/SQL学习笔记

    -- 1. 使用一个变量 declare -- Local variables here v_name ); begin -- Test statements here select t.user_n ...

  6. PL/SQL学习(六)触发器

    原文参考:http://plsql-tutorial.com/ 创建语法: CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE | AFTER | IN ...

  7. PL/SQL学习(五)异常处理

    原文参考:http://plsql-tutorial.com/ 组成: 1) 异常类型 2) 错误码 3) 错误信息   代码结构: DECLARE Declaration section BEGIN ...

  8. PL/SQL学习(四)存储过程和函数

    原文参考:http://plsql-tutorial.com/ PL/SQL存储过程 存储过程相当于一个有名字的PL/SQL块,经过第一次编译后再次调用时不需要再次编译 创建格式: CREATE [O ...

  9. PL/SQL学习(三)游标

    原文参考:http://plsql-tutorial.com/ 两种类型:     隐式:         执行INSERT.UPDATE.DELETE 或者只返回一条结果的SELECT语句时默认创建 ...

随机推荐

  1. 关于python文件转为exe文件

    一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2e ...

  2. MSSQLSERVER数据库- 解决不允许保存更改表结构

    工具菜单----选项----Designers(设计器)----阻止保存要求重新创建表的更改 取消勾选

  3. hdu 1050 Moving Tables

    http://acm.hdu.edu.cn/showproblem.php?pid=1050 这个题我首先直接用的常规贪心,用的和那个尽可能看更多完整节目那种思路.但是.......一直WA....T ...

  4. C# LINQ详解(一)

    原文标题:How does it work in C#?-Part 3 (C# LINQ in detail),作者:Mohammand A Rahman. 目录 LINQ 基础 扩展方法-幕后的工作 ...

  5. xcode针对不同IOS版本的代码编译问题

    有时候在项目中为了兼容低版本IOS系统,通常会针对不同的OS版本写不同的代码,例如: #define IS_IOS7_OR_LATER ([[UIDevice currentDevice].syste ...

  6. IOS--- NavigationBar标题按钮

    A.NavigationBar标题按钮 1.需求 在“首页”的导航栏中部设置一个“首页”文字+箭头按钮 统一设置样式 根据实际文本长度调整宽度 消除系统自带的点击高亮效果 点击按钮,箭头上下颠倒 gi ...

  7. 【转】windows环境下利用doxygen生成代码文档

    作者:jiangwenna    http://www.jiangwenna.com/windows-doxygen-doc/ Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统 ...

  8. Linux下pcapy的安装问题

    在安装pcapy包的时候 cd pcapy-0.10.8/ python setup.py install 报错 error trying to exec ‘cc1plus’: execvp: No ...

  9. C++ STL (备忘)

    2014-08-04 16:33:57 (1)  map  map定义形式 map<type1,type2> map_name; map的基本操作函数:      C++ Maps是一种关 ...

  10. UpdateProgress使用

    UpdateProgress是一个进度显示条,加在AJAX里能显得更加的人性化(个人认为).现在我们就开始吧: 第一.新建一个AJAX项目.在页面上加上ScriptManager,UpdatePane ...