1. % type 用法,提取% type所在字段的类型

declare
    myid dept.deptno % type;
    myname dept.dname % type;
begin
    select deptno, dname into myid, myname from dept where deptno = 10;
    dbms_output.put_line(myid);
    dbms_output.put_line(myname);
end;2. % rowtype 用法,提取% rowtype所在字段的类型

declare
    type type_dept is table of dept % rowtype index by binary_integer;
    tb type_dept;
begin
    tb(1).deptno:='001';
    tb(2).deptno:='002';
    dbms_output.put_line(tb.COUNT);
end;
/3. TYPE用法,相当于结构体

declare
    lv_order_date DATE:=sysdate;
    lv_last_tr varchar2(5) default '001';
    lv_last varchar2(10) not null:='us';
    TYPE type_test is record(
        myid dept.deptno % type,
        myname dept.dname % type
    );
    rec type_test;
begin
    dbms_output.put_line(lv_last);
    select deptno, dname into rec from dept where deptno=10;
    dbms_output.put_line(rec.myid);
    dbms_output.put_line(rec.myname);
end;
/4. 游标的使用

declare
    g_id number(2) := 20;
    find_not char(1) := 'N';
    cursor cur is select * from dept;
    TYPE type_dept is record(
        myid dept.deptno % type,
        myname dept.dname % type,
        myaddr dept.loc % type
    );
    rect type_dept;
begin
    open cur;
    loop
        fetch cur into rect;
        exit when cur%     NOTFOUND;
        if rect.myid = g_id then
            dbms_output.put_line('Find it!!');
            dbms_output.put_line('DEPT NO: ' || rect.myid);
            dbms_output.put_line('DNAME: ' || rect.myname);
            dbms_output.put_line('LOC: ' || rect.myaddr);
        end if;
    end loop;
    close cur;
   
    if find_not = 'N' then
        dbms_output.put_line('No Record');
    end if;
end;
/5. for循环

begin
    for i in 1..5 loop
        dbms_output.put_line(i);
    end loop;
end;
/6. loop循环

declare
    v number := 1;
begin
    loop
        exit when v > 5;
        dbms_output.put_line(v);
        v := v+1;
    end loop;
end;
/ 7. while循环

declare
    v number := 1;
begin
    while v <= 5 loop
        dbms_output.put_line(v);
        v := v+1;
    end loop;
end;
/

OCM读书笔记(2) - PL/SQL 基础的更多相关文章

  1. 《玩转Django2.0》读书笔记-Django建站基础

    <玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...

  2. 《Essential C++》读书笔记 之 C++编程基础

    <Essential C++>读书笔记 之 C++编程基础 2014-07-03 1.1 如何撰写C++程序 头文件 命名空间 1.2 对象的定义与初始化 1.3 撰写表达式 运算符的优先 ...

  3. Oracle实战笔记(第六天)之PL/SQL基础

    一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语 ...

  4. PL/SQL基础2(笔记)

    1 第一个PL/SQL的程序 DECLARE BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; / --2一个简单的PL/SQL程序 DECLARE v ...

  5. PL/SQL基础1(笔记)

    --基本结构DECLARE--变量声明部分:在此声明PL/SQL用到的变量,类型,游标,以及局部的存储过程和函数BEGIN --执行部分:过程及SQL语句,即程序的主要部分 EXCEPTION --执 ...

  6. 慕课网笔记之oracle开发利器-PL/SQL基础

    实例1--if语句 /* 慕课网Oracle数据库开发必备之PL/SQL_2-3 判断用户从键盘输入的数字 1.如何使用if语句 2.接收一个键盘的输入(字符串) */ set serveroutpu ...

  7. Oracle442个应用场景---------PL/SQL基础

    ----------------------------------------------------------------------------------- 备份和恢复数据库略过.在后面解说 ...

  8. Oracle数据库之PL/SQL基础

    介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...

  9. PL SQL 基础

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

随机推荐

  1. Actor::updateMassFromShapes

    unity报错Actor::updateMassFromShapes: Compute mesh inertia tensor failed for one of the actor's mesh s ...

  2. 将EC2里的实例导出到RAW文件并进行修改

    你可能有自己的instance在amazon云环境里面,或者是你想深度修改一下marketplace里面提供的那些系统又估计运行中的instance改动不方便 亚马逊作为云计算领域的大哥大,我不得不说 ...

  3. Delphi发送邮件...

    ///首先在控件栏定位到:Indy Clients加入控件IdSMTP ///再定位到:Indy Misc加入控件IdMessage ///发送邮件函数 procedure TForm1.SendMa ...

  4. BZOJ 1009: [HNOI2008]GT考试( dp + 矩阵快速幂 + kmp )

    写了一个早上...就因为把长度为m的也算进去了... dp(i, j)表示准考证号前i个字符匹配了不吉利数字前j个的方案数. kmp预处理, 然后对于j进行枚举, 对数字0~9也枚举算出f(i, j) ...

  5. (解决tomcat端口被占用的问题)create[8005]java.net.BindException: Address already in use: JVM_Bind

    create[8005]java.net.BindException: Address already in use: JVM_Bind”,原来是Tomcat8005端口被其他进程占用,8005端口是 ...

  6. 15-UIKit(view布局、Autoresizing)

    目录: 1. 纯代码布局 2. 在View中进行代码布局 3. Autoresizing 回到顶部 1. 纯代码布局 纯代码布局分VC下和V下 [MX1-layout-code] 在VC下覆盖view ...

  7. Hibernate 3中如何获得库表所有字段的名称

    15问:Hibernate 3中如何获得库表所有字段的名称 答:可以使用以下的程序获得. Configuration conf = new Configuration(); conf.configur ...

  8. [置顶] think in java interview-高级开发人员面试宝典(八)

    面经出了7套,收到许多读者的Email,有许多人说了,这些基础知识是不是为了后面进一步的”通向架构师的道路“做准备的? 对的,你们没有猜错,就是这样的,我一直在酝酿后面的”通向架构师的道路“如何开章. ...

  9. Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

    Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  -  ...

  10. C# - Environment类,获取桌面的路径

    private void button1_Click(object sender, EventArgs e) { string Path = Environment.GetFolderPath(Env ...