zoukankan      html  css  js  c++  java
  • PL/SQ 基础

    第三章PL/SQL 基础
    PL/SQL块结构

    DECLARE

    BEGIN 必须

    EXCEPTION

    END;必须


    set serveroutput on
    BEGIN
    dbms_output.put_line('hello, everyone');
    END;
    /


    标量类型
    VARCHAR2/CHAR/NUMBER/DATE/BOOLEAN
    v_ename VARCHAR2(10);
    vsal NUMBER(5,2);
    c_tax_rate CONSTANT NUMBER(3,2) :=5.5;
    v_hiredate DATE;
    v_valid BOOLEAN NOT NULL DEFAULT FALSE;
    块中赋值要用:=

    %TYPE - 会按照数据库列或其他变量来确定新变量的类型和长度

    复合类型
    参考类型
    REF CURSOR

    DECLARE
    TYPE c1 IS REF CURSOR
    emp_cursor c1
    v_ename emp.ename%TYPE
    v_sal emp.sal%TYPE
    BEGIN
    OPEN emp_cursor FOR
    SELECT ename,sal FROM emp WHERE deptno=10;
    LOOP
    FETCH emp_cursor INTO v_ename,v_sal;
    EXIT WHEN emp_cursor%NOTFOUND
    dbms_output.put_line(v_ename);
    END LOOP;
    CLOSE emp_cursor;
    END;
    /


    非PL/SQL 变量
    var name varchar2(10)
    BEGIN
    SELECT ename INTO :name from emp WHERE empno=7788;
    END;
    /

    单行注释 --
    多行注释 /* */

    标识符命名规则
    定义变量是,v_前缀 v_sal
    定义常量是,c_前缀 c_rate
    定义游标是,cursor做后缀 emp_cursor
    定义例外是,e做前缀 e_integrity_error


    第六章访问Oracle
    PL/SQL块结构嵌入SELECT, 必须要有INTO,可以使用标量变量或这记录变量,只能返回一条记录,否则触发NO_DATA_FOUND 或者TOO_MANY_ROWS
    SELECT select_list
    INTO var_name
    FROM table
    WHERE condition;


    第七章控制结构
    IF THEN
    ELSIF THEN
    ELSE
    END IF;


    IF THEN
    END IF;

    IF THEN
    ELSE THEN
    END IF;

    IF THEN
    ELSIF THEN
    ELSE
    END IF;


    CASE
    WHEN THEN
    WHEN THEN
    ELSE
    END CASE;

    循环1
    LOOP
    EXIT WHEN
    END LOOP;

    循环2
    WHILE condition LOOP
    END LOOP;

    循环3
    FOR counter in [REVERSE]
    lower_bound..upper_bound LOOP

    END LOOP;


    BEGIN
    FOR I IN REVERSE 1..10 LOOP
    INSERT INTO temp VLAUES(i);
    END LOOP;
    END;

    第8章使用复合数据类型
    1.自定义记录
    DECLARE
    TYPE emp_record_type IS RECORD(
    name emp.name%TYPE
    salary emp.sal%TYPE
    );
    emp_record emp_record_type;
    ..
    2.使用%ROWTYPE 属性
    dept_record dept%ROWTYPE
    emp_record emp%ROWTYPE


    第9章 使用游标
    使用显式游标
    1.定义游标
    2.打开游标
    3.提取数据
    4.关闭游标

    游标四属性
    1. SQL%ISOPEN
    2. SQL%FOUND
    3. SQL%NOTFOUND
    4. SQL%ROWCOUNT

  • 相关阅读:
    ZOJ4125 Sekiro
    ZOJ4118 Stones in the Bucket
    ZOJ4115 Wandering Robot
    ZOJ4113 Calandar
    【递归】N皇后问题 和 2n皇后问题 dfs
    7-18
    7_13
    二维前缀和
    64位整数乘法
    【分治】魔法石的诱惑
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/12689825.html
Copyright © 2011-2022 走看看