PLSQL l SQL SQL DBMS SQL SQL IF

  • Slides: 31
Download presentation

PL/SQL的优点 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

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 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]; 实例: 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

标量数据类型 • 保存单个的数值 • 没有内部组件 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)] – 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 : =

标量变量声明 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;

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

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

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

DBMS_OUTPUT. PUT_LINE – 这是一个Oracle所提供的一个打包过程 – 可以代替 PL/SQL 块来完成数据的显示 – 在SQL*Plus中必须执行SET  SERVEROUTPUT ON语句以激活该功能 – 例如:

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; /