定义并使用变量
PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型
一.标量类型
最常用的就是标量类型,是指只能存放单个数值的变量,包括数字类型、字符类型、日期类型和布尔类型,每种类型又包含相应的子类型。
常量标量类型如下:
VARCHAR2
(n) ,
CHAR
(n),
NUMBER
(p,s),DATE,
TIMESTAMP
,
LONG
,
LONG
RAW
,BOOLEAN,BINARY_INTEGER(仅PL
/
SQL使用),BINARY_FLOAT和BINARY_DOUBLE(10g新引入的)
定义标量:
identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr]
使用标量需要注意的是=号被:=取代,与delphi一样的赋值符号@_@
例子:
v_name
VARCHAR2
(
10
);
v_rate CONSTANTS
NUMBER
(
4
,
2
) :
=
3.04
;
为了防止定义的变量类型与表中的字段类型不一致,可以使用%TYPE来定义:
v_name employee.name
%
TYPE;
如上面所示,v_name的类型就与表employee中的name字段类型一样!!
二。复合变量:
用于存放多个值的变量称为复合变量,包括PL/SQL记录,PL/SQL表,嵌套表和VARRAY四种类型
1。PL/SQL记录
类似于C/C++中的结构概念:
declare
TYPE employee_record
is
RECORD(
id employee.id
%
TYPE,
name employee.name
%
TYPE,
email employee.email
%
TYPE);
em_record employee_record;
begin
select
id,name,email
into
em_record
from
employee
where
name
=&
name;
dbms_output.put_line(
'
雇员名:
'
||
em_record.name
||
'
雇员ID:
'
||
em_record.id);
end
;
2。PL/SQL表,类似于数组概念,不同的是PL/SQL表允许负值下标,而且没有上下限,如:
declare
TYPE employee_table
is
table
of
employee.name
%
TYPE
index
by
BINaRY_INTEGER;
em_table employee_table;
begin
select
name
into
em_table(
-
1
)
from
employee
where
name
=&
name;
dbms_output.put_line(
'
雇员名:
'
||
em_table(
-
1
));
end
;
3。嵌套表,与PL/SQL表相似,不同的是嵌套表可以做表列的数据类型,而PL/SQL表不能,使用嵌套表作为表列时,必须为其指定专门的存储表,如:
create
or
replace
TYPE emp_type
as
OBJECT(
name
VARCHAR2
(
10
),salary
NUMBER
(
6
,
2
),hiredate DATE);
CREATE
OR
REPLACE
TYPE emp_array
IS
TABLE
OF
emp_type;
CREATE
TABLE
department(
deptno
NUMBER
(
2
),dname
VARCHAR2
(
10
),
employee emp_array)NESTED
TABLE
employee STORE
as
employee_dept;
4。VARRAY(变长数组),与嵌套表相似,也可以做为表列的数据类型,但是嵌套表没有个数限制,而VARRAY有个数限制,如:
CREATE TYPE TEST_ARRAY IS VARRAY(20) OF emp_type;
三。引用变量(reference)
类似于C++中的指针或者JAVA中引用的概念,用于存放数值指针的变量,使用此变量,可以使得应用程序共享相同对象,降低占用空间。此类有两种类型:游标(REF CURSOR)和对象类型(REF OBJECT)
1。REF CURSOR,定义时同时指定SELECT语句的游标称为显式或者静态游标,在打开时才指定SELECT语句的游标称为动态游标,如:
DECLARE
TYPE c1
IS
REF
CURSOR
;
emp_cursor c1;
v_name employee.name
%
TYPE;
v_sal employee.salary
%
TYPE;
begin
open
emp_cursor
for
SELECT
name,salary
FROM
EMPLOYEE ;
LOOP
FETCH
emp_cursor
INTO
v_name,v_sal;
EXIT
WHEN
emp_cursor
%
NOTFOUND;
dbms_output.put_line(v_name);
END
LOOP;
close
emp_cursor;
end
;
2。REF OBJECT,与JAVA的引用概念相同,存储的是指向对象的指针
四。LOB类型
LOB类型是指用于存储大批量数据的变量,包括内部的3种(CLOB,BLOB,NCLOB)和外部LOB(BFILE)。
CLOB,NCLOB用于存储大量的字符数据。
BLOB用于存储大批量二进制数据(如图象)。
BFILE则存储指向OS文件的指针。
分享到:
相关推荐
以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...
PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行...通过学习和掌握PL/SQL,开发者可以构建高效、复杂的数据库应用程序。
PL/SQL数据库学习笔记 PL/SQL是一种高级的程序语言,主要用于Oracle数据库管理系统中。下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量...
在学习PL/SQL的过程中,理解这些基本概念和结构是至关重要的。通过实践编写存储过程、函数和触发器,你可以逐渐掌握PL/SQL的强大功能,并利用它来解决实际的数据库编程问题。对于初学者来说,循序渐进、结合实例学习...
### PL/SQL学习笔记4 —— 集合与成员函数 #### 一、PL/SQL 表(索引表) 在PL/SQL中,**索引表**(也称为**PL/SQL表**)是一种非常有用的结构,它类似于数组但具有更多的灵活性。这种表是非持久化的,即它们不会...
在这个“我的PL/SQL学习笔记(一)”中,我们将探讨PL/SQL的基础知识,包括其语法结构、变量声明、流程控制以及如何与Oracle数据库中的数据进行交互。 首先,PL/SQL的基本结构分为声明部分、执行部分和异常处理部分...
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括...这本书籍将为读者提供一个全面、系统的学习路径,帮助数据库管理员、开发人员深入理解并掌握ORACLE PL/SQL的强大功能和应用技巧。
总的来说,“PL/SQL超级笔记”应该涵盖了从基本语法到高级特性的全面教程,通过学习,新手可以逐步掌握如何使用PL/SQL进行数据库编程,从而更好地管理和操作Oracle数据库。配合"oracle_ppt"中的PPT材料,学习效果会...
在PL/SQL编程中,游标是处理查询结果集的重要工具。它们允许程序逐行处理结果,而不是一次性加载所有数据,这对于大型数据集尤其有用,因为它可以节省内存并提高性能。下面将详细解释游标的基本概念、分类以及如何在...
### PL/SQL听课笔记 #### 一、PL/SQL简介 **PL/SQL**(Procedural Language for SQL)是一种专门为Oracle数据库设计的过程化语言扩展。它是在标准SQL基础上增加了一系列高级编程特性,如变量、控制结构、函数、...
在PL/SQL编程中,存储过程和函数是关键的组件,它们允许我们将可重用的代码逻辑存储在数据库中,以便于管理和调用。本文主要探讨了存储过程、函数以及程序包的概念,特点,创建方法,执行方式,权限管理以及参数处理...
在PL/SQL的学习中,分区是数据库管理大型数据集的一种高效方法,特别是在处理大数据量时。本篇笔记主要探讨了何时应该使用分区以及Oracle支持的分区类型。 首先,当面对超过2GB的大数据表时,分区是十分必要的。这...
本文将深入探讨从"SQL,PL/SQL学习笔记"中提取的关键知识点,帮助编程人员更好地理解和运用这两种语言。 首先,我们关注SQL并行查询。通过`ALTER SESSION ENABLE PARALLEL DMl`,我们可以开启会话的并行DML操作,这...
这篇课堂笔记主要涵盖了基础的SQL查询语法和部分PL/SQL概念。 首先,SQL查询的基础是从数据库中选择数据。`SELECT`语句用于指定需要选取的列,如`SELECT ename, sal, job FROM emp;`。字段顺序可以自由调整,例如`...
### PL/SQL 学习笔记知识点详解 #### 1. PL/SQL 基本结构 - **DECLARE**: 在此部分声明变量、常量、数据类型及游标。 - **BEGIN**: 主程序体开始,可以包含任何合法的PL/SQL语句。 - **EXCEPTION**: 异常处理部分,...