这是第二章的学习笔记,学习完第一章的基础之后,从现在开始要学习Oracle编程了……,希望大家能多给俺一些支持啊!
编程时使用的工具是PLSQL Developer 7.1.4
select * from Employee;
select * from dba_tab_cols t where t.table_name='EMPLOYEE';
-- 声明部分,用于定义变量
declare
constant用于定义常量,当定义常量时必须指定它的初始值,且数据不能改变
n_aaa constant number(4,2) :=5.5;
boolean 类型的值只能用于sqlplus语句块中,不能用在表字段的数据类型中
not null 用于强制初始化变量不能为空,此时必须为变量指定值
default用于指定变量或常量的默认值
v_valid boolean not null default false;
v_name varchar2(20);
为了确保变量使用合适的数据类型和长度,可以使用%type属性定义变量,它会按照数据库列
或其它变量来确定新变量的类型和长度
v_job Employee.Job%type;
将v_job2定义为与变量v_job的数据类型和长度完全一致
v_job2 v_job%type;
复合变量:
处理单行单列数据时,用标量变量;处理单行多列时,用PL/SQL记录;处理单列多行时,
用集合;处理多行多列数据时,可以结合使用PL/SQL记录和集合
PL/SQL记录(RECORD):
方法一:
emp_recode_type 是PL/SQL记录类型并包含有三个成员(name,salary,job)
type emp_recode_type is record(
name employee.name%type,
salary employee.salary%type,
job employee.job%type
);
emp_recode是记录变量
emp_recode emp_recode_type;
方法二:
使用表名的%rowtype 属性定义记录变量
注意:用%rowtype 属性定义记录变量时,记录成员个数、名称、类型必须与
表或视图的列的个数、名称和类型完全相同
emp_recode2 employee%rowtype;
集合类型
PL/SQL 表(也称索引表,下标可以为负数,下标没有上限和下限,并且元素的个数无限)
--这里的table 实指集合
type name_table_type is table of employee.name%type index by binary_integer;
name_table name_table_type;
嵌套表:
嵌套表的下标不能为负值,其元素的个数没有限制并可以使用表列的数据类型
在使用嵌套表时必须先用create type 语句建立嵌套表类型
嵌套表只是比PL/SQL 表少了 index by binary_integer
type num_table_type is table of number(4);
num_table num_table_type;
varray(变长数组):
varray的元素个数是有限制的,在使用其之前必须先建立varray类型
在此创建的varray只能存放20个varchar2类型的数据
注意:嵌套表列数据需要存储在专门的存储表中,而varray数据则与
其它列数据一起存放在表字段中
type v_varray_type is varray(20) of varchar2(10);
n_empno employee.empno%type;
-- 程序开始
begin
执行部分,执行PL/SQL/和SQL语句
可以用into将从表人查询出来的值赋给指定的变量
将值赋给变量有两种方法,一是用 := ,二是用 into
& 符号用于提示用户输入一个值,& 为sqlplus的替代变量
n_empno := &输入你要查询的员工编号:;
select Name,Job into v_name,v_job from Employee where empno=n_empno;
这里的 || 号与Java中的 + 号类似,表示要将两边的字符串连接起来
dbms_output是Oracle所提供的系统包,用于输出数据或消息,
而put_line是该包所包含的过程,用于输出字符串信息并换行
当在CMD中使用dbms_output包时,必须要先将sqlplus 的环境变量
serveroutput 设置为 on
dbms_output.put_line('你查询的员工是:' || v_name || ' 他的工作是:' || v_job);
引用记录变量的成员并赋值(赋值可以用 := 和 into 两种方法)
注意:用select……into 语句给记录变量赋值时,select语句中的列名列表的名称和个数、
类型必须与记录变量的成员个数、名称、类型完全相同
dbms_output.put_line('你查询的员工是:' || v_name || ' 他的工作是:' || v_job);
emp_recode.name := '钱森';
dbms_output.put_line('引用记录变量的成员并赋值(Recode):' || emp_recode.name);
select name,job into emp_recode2.name,emp_recode2.job from employee where empno=2;
dbms_output.put_line('引用记录变量的成员并赋值(RowType):' || emp_recode2.name || ' 的工作是:' || emp_recode2.job);
-- 使用PL/SQL表(索引表)
select name into name_table(-50) from employee where empno=1;
dbms_output.put_line('雇员名:' || name_table(-50));
-- 使用嵌套表
-- 必须先设置嵌套表的下标,然后才能对该集合进行赋值
num_table := num_table_type(1,2,3,4,5);
num_table(1) := 10;
num_table(5) := 100;
dbms_output.put_line('使用嵌套表:' || num_table(1) || ',' || num_table(5));
exception
-- 异常处理部分
when NO_DATA_FOUND then dbms_output.put_line('查询不到员工编号为' || n_empno || '的员工!');
when TOO_MANY_ROWS then dbms_output.put_line('数据完整性错误,员工编号' || n_empno || '重复!');
when OTHERS then dbms_output.put_line('PL/SQL执行错误!' || sqlerrm);
-- 程序结束
end;
/
分享到:
相关推荐
### Oracle PL/SQL编程核心知识点解析 #### 一、创建基本表与操作 在Oracle数据库中,使用PL/SQL进行数据库编程前,首先需掌握如何创建表与进行基本的CRUD(创建、读取、更新、删除)操作。示例中的`CREATE TABLE`...
### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...
在Oracle环境中,PL/SQL(Procedural Language for SQL)是一种过程化的编程语言,主要用于编写存储过程、函数、触发器等组件,以此来增强数据库的功能性和安全性。 1. **扩展Oracle数据库的编程性能**:通过将业务...
**标题**: oracle笔记二--plsql 编程 **描述**: oracleoracleoracleoracleoracleoracleoracleoracle(推测为占位符文本,无实际意义) **标签**: oracle **部分内容**: 在部分内容中提到了关于Oracle 10g的安装与...
本学习笔记涵盖了从基础到进阶的PLSQL知识,旨在帮助读者全面理解和掌握这一强大的数据库编程工具。 1. **基础概念** - **PL/SQL块**:PLSQL程序的基本结构是块,包括声明部分、执行部分和异常处理部分。 - **...
Oracle PL/SQL 基础知识点总结 Oracle PL/SQL 是一种基于 Oracle 关系数据库管理系统的过程语言,主要用于...这些知识点是 Oracle PL/SQL 编程的基础,掌握这些知识点可以帮助我们更好地编写 Oracle PL/SQL 代码。
Oracle SQL 和 PL/SQL 是...理解这些基本概念和语句是掌握 Oracle SQL 和 PL/SQL 的基础,它们在数据库管理、数据操作和应用开发中起着至关重要的作用。通过不断实践和学习,你可以更高效地管理和维护 Oracle 数据库。
### ORACLE_PlSql-甲骨文学习笔记 #### 一、创建表 ##### 创建表一 ```sql CREATE TABLE TABLE_NAME ( AAA INTEGER CONSTRAINT PK_TABLE_NAME PRIMARY KEY, BBB VARCHAR2(10) NOT NULL, DOB DATE, CCC VARCHAR...
这篇学习笔记主要涵盖了PLSQL的基础概念、语法结构以及在实际应用中的重要技巧。 1. PLSQL的基本结构: PLSQL由声明部分、执行部分和异常处理部分组成。声明部分定义变量、常量、游标等;执行部分包括控制流语句,...
### Oracle学习笔记知识点详解 #### 一、Oracle基础概念与常用命令 1. **`desc` 命令**:用于描述表结构。通过输入 `desc 表名` 可以查看该表的所有列信息,包括列名、数据类型、是否为空等。 2. **`dual` 表**...
《Oracle经典笔记》是一份深度探讨Oracle数据库管理系统的综合学习资料。这份笔记涵盖了从Oracle PL/SQL编程到SQL查询语言的广泛主题,旨在帮助读者深入理解Oracle数据库的运作机制和应用技巧。 首先,我们来看看...
Oracle学习笔记是一个面向初学者的资源集合,旨在帮助读者快速入门Oracle数据库系统。Oracle是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据重要地位。这份笔记涵盖了Oracle的基础知识,对于...
通过阅读“Oracle9i PLSQL 入门到精通”这本书,读者可以系统地学习如何使用PLSQL进行数据库编程,从简单的数据操作到复杂的业务逻辑实现,逐步提升为数据库专家。书中的实例和实践项目将帮助读者巩固理论知识,提高...
SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,而PL/SQL(Procedural Language/Structured Query Language)是Oracle公司对SQL的一种扩展,它引入了过程化编程元素,使得数据库管理与应用...
PLSQL(Procedural Language/Structured ...通过深入学习和实践这些基本概念,你可以掌握PLSQL编程,并能有效地与Oracle数据库进行交互。这篇“PLSQL学习笔记”很可能会详细解释这些概念,并提供实例来帮助读者理解。
### Oracle 10g PL/SQL 实战笔记关键知识点解析 #### 一、PL/SQL 概述 - **PL/SQL** (Procedural Language for SQL) 是 Oracle 数据库的一种扩展,它允许用户在 SQL 的基础上进行更复杂的程序设计。 - **特性**: ...
【正文】 本篇笔记主要围绕Java3相关课程中的PL/SQL部分进行深入讲解,由薛海璐老师主讲,全面涵盖了PL/SQL的基础概念、程序结构、...本笔记系列将逐步引导读者掌握这些技能,为Java3课程的学习提供坚实的数据库基础。
PLSQL,全称为Procedural Language/Structured Query Language,是Oracle数据库系统中用于操作和管理数据的一种编程语言。它是SQL的扩展,增加了程序化的元素,如循环、条件语句和子程序,使得数据库管理和开发更加...