Oracle开发基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle开发基础

一、P L/SQL基础

1、PL/SQL 简介

Procedural Language/SQL

Oracle 特有

结构化的查询语言

2、结构:

三部分

DECLARE

--声明部分

BEGIN

--执行部分

EXCEPTION

--异常处理

END;

3、查看错误

show error ;

4、优势

(1)运行速度快;(2)结构化

不足:只有用于Oracle数据库

5、PL/SQL变量:

(1)变量类型:

1、标量类型(scalar)---简单类型

identifier[constant]

datatype(number|char|varchar2(n[char|byte])…)[n

ot null] := [expr];

2、复合类型(composite)--操作一条记录

3、参照类型(reference)--操作多条记录

4、lob(large object)

(2)变量规范

一般标量类型以v_开头

举例:

(a)SET SERVEROUTPUT ON;

DECLARE

v_ename VARCHAR2(100);

BEGIN

SELECT ename INTO v_ename FROM emp WHERE empno=7369;

dbms_output.put_line('EName:'|| v_ename);

END;

/

标量类型变量定义

SET SERVEROUTPUT ON;

DECLARE

v_empno emp.empno% TYPE; --跟emp表empno字段类型一致

v_tax_rate CONSTANT NUMBER(10,2) := 0.08;--定义为常量v_ename emp.ename% TYPE;

v_sal emp.sal% TYPE ;

v_total_tax NUMBER(10,2) ;--1234567.89

BEGIN

v_empno := &empno;

SELECT ename, sal INTO v_ename, v_sal FROM emp WHERE empno =v_empno;---不能出现多个INTO

v_total_tax := v_sal * v_tax_rate ;

dbms_output.put_line('Ename:'|| v_ename||' Total_Tax:'||v_total_tax);

END;

/

复合变量定义

1、SET SERVEROUTPUT ON

DECLARE

TYPE EMP_RECORD IS RECORD(

name emp.ename % TYPE,

salary emp.sal% TYPE,

title emp.job% TYPE

);

s_emp EMP_RECORD;

BEGIN

SELECT ename,sal,job INTO s_emp FROM emp WHERE empno=&empno;

dbms_output.putline(s_||' '|| s_emp.salary||' '|| s_emp.title);

END;

/

2、SET SERVEROUTPUT ON

DECLARE

TYPE EMP_TABLE IS TABLE OF

emp.ename % TYPE

index by varchar2(20) ;

s_emp EMP_TABLE;

BEGIN

SELECT ename,sal, job INTO s_emp('ename'),s_emp('sal'), s_emp('job') FROM emp WHERE empno=7369;

dbms_output.put_line(s_emp('ename')||'

'||s_emp('sal')||' '||s_emp('job')); END;

相关文档
最新文档