zoukankan      html  css  js  c++  java
  • [跟着hsp步步学习系统]oracle培训学习集锦全360度扫描(6)自适应变量,记录型类型,游标

    第三十六讲
    为了让v_ename类型,更灵活,我们来用%type来自适应 如
    v_ename emp.ename%type;
    v_sal emp.sal%type;
    此法,是与表的列相一同
    2.复合变量,可以存多个变量,如同结构体
    也叫:pl/sql记录。其语法是:
    type 名 is record(
    变量 变量的类型,
    变量 变量的类型
    );
    快速入门
    create or replace procedure pro1(v_in_empno in number)
    is
    --定义一个记录数据类型
    type hsp_emp_record is record(
    v_ename emp.ename%type;
    v_sal emp.sal%type,
    v_job emp.job%type
    );
    --定义一个变量,此变量类型是hsp_emp_record
    v_emp_record hsp_emp_record;


    begin
    select ename,sal,job into v_emp_reord form emp where empno=empno;
    dbms_output.put_line('名字'||v_emp_record.v_anme||'工资'||v.emp_record.v_sal);
    end;--访问时,如同类与对象的样子
    3.复合类型pl/sql表
    如同java的数组,不过其下标是可变的。不是很重要
    语法是
    type 名 数据类型 is table of emp.sql%type index by binary_integer;
    定义一个这样的变量
    变量名 数据类型
    4.参照变量
    较重要,游标变量:通过游标可以取得返加结果的任何一行数据,可以提供共享的。


    a定义游标
    b打开游标
    c取当前游标批向的行 fetch 游标变量 into 其他变量
    d是否在末行
    案例:
    create or replace procedure pro1(v_in_deptno number)
    is
    --先定义一个游标变量类型
    type hsp_emp_cursor is ref cursor;
    --定义一个游标变量
    v_emp_cursor hsp_emp_sursor;
    v_ename emp.enme%type;
    v_sal emp.sal%type;
    begin
    --打开一个游标
    open v_emp_cursor for select ename,sal form emp;
    --取此游标指向的每行数据
    loop
    --此语句会让游标向下走
    fetch v_emp_cursor into v_ename,v_sal;
    --看当前游标是否到最后
    exit when v_emp_cursor%notfound;
    --输出
    dbms_output.out_line('用户名:'||v_ename)
    end loop;
    --关闭游标
    close v_emp_cursor;
    end;
    若薪水低于二百元,则再加一百元的修改
    create or replace procedure pro1(v_in_deptno number)
    is
    --先定义一个游标变量类型
    type hsp_emp_cursor is ref cursor;
    --定义一个游标变量
    v_emp_cursor hsp_emp_sursor;
    v_ename emp.enme%type;
    v_sal emp.sal%type;
    v_empno emp.empno%type;
    begin
    --打开一个游标
    open v_emp_cursor for select ename,sal,v_empno rorm emp;
    --取此游标指向的每行数据
    loop
    --此语句会让游标向下走
    fetch v_emp_cursor into v_ename,v_sal,v_empno;
    --看当前游标是否到最后
    exit when v_emp_cursor%notfound;


    if v_sal<200 then
    update emp set sal=sal+100 where empno=v_empno;
    end if;


    end loop;
    --关闭游标
    close v_emp_cursor;
    end;

  • 相关阅读:
    json的eval的小问题
    关于insertBefore
    关于touch-action
    关于 please verify the preference field with the prompt:Tomcat JDK name 问题解决
    总结一下,以软件开发生命周期来说明不同的测试的使用情况
    用户需求、己、竞争对手的关系
    苹果电脑快捷键大全
    软件工程与计算机科学的区别
    有人认为,“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?
    Maven 和IDEA的初始配置
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3007508.html
Copyright © 2011-2022 走看看