PLSQL l SQL SQL DBMS SQL SQL IF





PL/SQL的优点 l 提高性能 SQL 应用 SQL 其它 DBMS SQL 应用 SQL IF. . . THEN SQL ELSE SQL END IF; SQL Oracle PL/SQL


PL/SQL语句块结构 DECLARE v_variable VARCHAR 2(5); BEGIN SELECT column_name INTO v_variable FROM table_name; EXCEPTION WHEN exception_name THEN. . . END; DECLARE BEGIN EXCEPTION END;
![块类型 l 匿名 过程 函数 [DECLARE] PROCEDURE name IS BEGIN --statements [EXCEPTION] FUNCTION name 块类型 l 匿名 过程 函数 [DECLARE] PROCEDURE name IS BEGIN --statements [EXCEPTION] FUNCTION name](http://slidetodoc.com/presentation_image/4627a56da1cacf1a1f6ff61da440c7a8/image-8.jpg)
块类型 l 匿名 过程 函数 [DECLARE] PROCEDURE name IS BEGIN --statements [EXCEPTION] FUNCTION name RETURN datatype IS BEGIN --statements RETURN value; [EXCEPTION] END;




![声明PL/SQL 变量 语法: identifier [CONSTANT] datatype [NOT NULL] [: = | DEFAULT expr]; 实例: 声明PL/SQL 变量 语法: identifier [CONSTANT] datatype [NOT NULL] [: = | DEFAULT expr]; 实例:](http://slidetodoc.com/presentation_image/4627a56da1cacf1a1f6ff61da440c7a8/image-13.jpg)
声明PL/SQL 变量 语法: identifier [CONSTANT] datatype [NOT NULL] [: = | DEFAULT expr]; 实例: Declare v_hiredate v_deptno v_location c_comm DATE; NUMBER(2) NOT NULL : = 10; VARCHAR 2(13) : = 'Atlanta'; CONSTANT NUMBER : = 1400;





标量数据类型 • 保存单个的数值 • 没有内部组件 25 -OCT-99 “Four score and seven years ago our fathers brought TRUE forth upon this continent, a new nation, conceived in 256120. 08 LIBERTY, and dedicated to the proposition that all men are created equal. ” Atlanta
![基本标量类型 – VARCHAR 2 (maximum_length) – NUMBER [(precision, scale)] – DATE – CHAR [(maximum_length)] 基本标量类型 – VARCHAR 2 (maximum_length) – NUMBER [(precision, scale)] – DATE – CHAR [(maximum_length)]](http://slidetodoc.com/presentation_image/4627a56da1cacf1a1f6ff61da440c7a8/image-19.jpg)
基本标量类型 – VARCHAR 2 (maximum_length) – NUMBER [(precision, scale)] – DATE – CHAR [(maximum_length)] – LONG RAW – BOOLEAN – BINARY_INTEGER – PLS_INTEGER

标量变量声明 l 例子: v_job v_count v_total_sal v_orderdate c_tax_rate v_valid VARCHAR 2(9); BINARY_INTEGER : = 0; NUMBER(9, 2) : = 0; DATE : = SYSDATE + 7; CONSTANT NUMBER(3, 2) : = 8. 25; BOOLEAN NOT NULL : = TRUE;


使用 %TYPE 属性来声明变量 l 例子:. . . v_ename v_balance v_min_balance. . . emp. ename%TYPE; NUMBER(7, 2); v_balance%TYPE : = 10;


LOB 数据类型 书籍 (CLOB) 图片 (BLOB) 电影 (BFILE) NCLOB



DBMS_OUTPUT. PUT_LINE – 这是一个Oracle所提供的一个打包过程 – 可以代替 PL/SQL 块来完成数据的显示 – 在SQL*Plus中必须执行SET SERVEROUTPUT ON语句以激活该功能 – 例如: DECLARE v_sal NUMBER(9, 2) : = &p_annual_sal; BEGIN v_sal : = v_sal/12; DBMS_OUTPUT. PUT_LINE ('The monthly salary is ' || TO_CHAR(v_sal)); END; /




- Slides: 31