在最近的工作中要用到存储过程和函数,索性把PL/SQL整体的看一下。之前看过基本书和园子里的博文,在这里将所学简单总结。

一、基本语句

  1、大小写

  2、分隔符  --  ;

  3、引用字符串  --  ‘ ’

  4、括号  --  ( )

二、数据类型

  1、标量类型

    1>数字类型  --  NUMBER等

    2>字符类型  --  CHAR  VARCHAR

    3>日期类型 --  DATE  TIMESTAMP  INTERVAL

    4>行标识类型 --  ROWID  UROWID

    5>布尔类型  --  TURE  FALSE  NULL

  2、复合类型

    1>记录 --  类似C语言的结构体

    2>联合数组

    3>嵌套表

    4>变长数组

  3、引用类型

    1>游标

    2>REF类型

  4、LOB类型

三、基本结构

  1、声明部分 --  DECLARE开头

  2、执行部分 --  BEGIN开头,END结束

  3、异常处理 --  EXCEPTION开头

四、常量

  常量名 CONSTANT 类型标识符[NOT NULL] := 值;

  PI  CONSTANT NUMBER(9) := 3.1415926;

五、变量

  变量名 类型标识符[NOT NULL]:= 值;

  %TYPE使变量获得字段的数据类型

  %ROWTYPE使变量获得整个记录的数据类型

六、表达式

  数值表达式:+    -     *     /       **(乘方)

  字符表达式:由连接符||组成的

  关系表达式:<    >     ==    <=    >=    !=    ALL    ANY    BETWEEN    EXISTS    IN    IS    LIKE

  逻辑表达式:NOT    OR    AND

七、运算符

  集合运算符:INTERSECT     MINUS    UNION    UNION ALL

  行运算符:   ALL    DISTINCT    PRIOR(树形查询时返回当前行的父级行)

八、条件控制

  1、IF条件

    IF···THEN···END IF;

    IF···THEN···ELSE···END IF;

    IF···THEN···ELSIF···THEN···ELSE···END IF;

  2、CASE条件

    CASE 表达式

      WHEN 值1 THEN

        ···············;

      WHEN 值2 THEN

        ···············;

        ········

      ELSE

        ···············;

     END CASE;

  3、搜寻式CASE条件

    CASE

      WHEN 表达式1  THEN

        ·····················;

      WHEN 表达式2 THEN

        ····················;

        ··············

      ELSE

         ·················;

    END CASE;

九、循环控制

  1、LOOP循环

                                     <<outer>>

   LOOP          LOOP                 LOOP                  

    ······;          ············;                ···········;

    EXIT;          EXIT WHEN 条件表达式;          LOOP

  END LOOP;        END LOOP;                  ············;

                                       EXIT outer WHEN 条件表达式;   --(两个循环均退出)

                                     END LOOP;

                                    END LOOP outer;

  2、WHILE···LOOP

    WHILE 表达式 LOOP

      ············;

    END LOOP;

  3、FOR ···LOOP

    FOR i IN 1..5 LOOP

      ············;

    END LOOP;

十、其他功能特性

  1、游标

  2、过程

  3、函数

  4、包

  5、集合

  6、错误处理

  

【Oracle】-初识PL/SQL的更多相关文章

  1. Oracle中PL/SQL的执行部分和各种流程控制

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

  2. Oracle中PL/SQL简介、基本语法以及数据类型

    Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...

  3. 使用oracle 的 PL/Sql 定时执行一个存储过程

    CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...

  4. Oracle之PL/SQL学习笔记

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

  5. 【SQL】Oracle的PL/SQL语法及其拓展数据类型总结

    PL/SQL语法 PL/SQL程序由三部分组成,声明部分.执行部分.异常处理部分. 模板: DECLARE /*变量声明*/ BEGIN /*程序主体*/ EXCEPTION /*异常处理部分*/ E ...

  6. Oracle实践--PL/SQL表分区的基础

    PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言.是对SQL的扩展.支 ...

  7. C#(在WeBAPI)获取Oracle(在PL/SQL)游标类型的存储过程(用到了RefCursor)

    需求:WebAPI服务端,通过Oracle数据库的存储过程,获取数据. 在PL/SQL 建立存储过程:(先来最简单的,就是把整个表都查出来) create or replace procedure S ...

  8. 【Oracle】PL/SQL 显式游标、隐式游标、动态游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  9. Oracle数据库PL/SQL那点事情---修改过电脑的用户名

    在安装Oracle数据库的PL/SQL工具时候,电脑名称是重装系统后自动生成的用户名名称,作为程序员,有很强的强迫症,就想利用自己的英文名称作为自己电脑的名称,所以就修改了电脑的名称:结果PL/SQL ...

随机推荐

  1. java 数据类型间的转换

    byte a = (byte)129; 129已经超过了byte数据类型的存储上限,所以需要在值的前面加括号需要转换的数据类型名. 但是从高往低转的时候数值精度会有丢失; 所以最后结果为 a = -1 ...

  2. dede表前缀不定时,查询表#@__archives

    $query = "SELECT arc.*,tp.typedir,tp.typename,               tp.isdefault,tp.defaultname,tp.nam ...

  3. ffmpeg中avframe的YUV格式数据到OpenCV中Mat的BGR格式转换

    ffmpeg实现音视频编解码是非常常用的工具,视频解码出来的raw数据是yuv格式,用来进行后续的图像处理一般是RGB格式的.所以需要从yuv到rgb或者bgr的转换,ffmpeg提供了相应的转换AP ...

  4. intern

    java.lang.String的intern()方法"abc".intern()方法的返回值还是字符串"abc",表面上看起来好像这个方 法没什么用处.但实际 ...

  5. Java 对二值化图片识别连通域

    用Java 对 已经 二值化了的图片 标记连通域 每块的连通域都标记不一样的数字 public static void main(String [] args) throws IOException ...

  6. JSP页面中的pageEncoding和contentType的区别

    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> pag ...

  7. 导入Mybatis_Spring项目遇到的问题

    1.  问题: jdk版本不匹配  解决方法:首先 到项目空间的   .setting文件中找到  org.eclipse.wst.common.project.facet.core.xml  修改参 ...

  8. c#套料程序设计

    上的套料基本上都没有源码,开放的sdk都没有,这让很多想做套料,但是又成本太高了. 另外,大部分套料都是c++实现的,效率高,本人尝试用c#做一个套料程序,发现效率也不低,当然会比c++差点. 以下是 ...

  9. JSTL与EL的区别

    JSTL JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持J ...

  10. phpstorm修改创建文件时的默认注释

    之前也修改过,过了一段时间又忘了,记个笔记.下次好找 工具版本 工具设置里,File>>Settings...如下