12-1:使用标量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename,sal INTO v_ename,v_sal
FROM emp WHERE empno=&no;
dbms_output.put_line('姓名:'||v_ename);
dbms_output.put_line('工资:'||v_sal);
END;
/
12-2:使用纪录变量接收数据
DECLARE
TYPE emp_record_type IS RECORD (
name emp.ename%TYPE,title emp.job%TYPE);
emp_record emp_record_type;
BEGIN
SELECT ename,job INTO emp_record
FROM emp WHERE empno=&no;
dbms_output.put_line('姓名:'||emp_record.name);
dbms_output.put_line('岗位:'||emp_record.title);
END;
/
12-3:no_date_found 异常
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename,sal INTO v_ename,v_sal
FROM emp WHERE empno=&no;
dbms_output.put_line('姓名:'||v_ename);
dbms_output.put_line('工资:'||v_sal);
END;
/
12-4:too_many_rows异常
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename,sal INTO v_ename,v_sal
FROM emp WHERE deptno=&no;
dbms_output.put_line('姓名:'||v_ename);
dbms_output.put_line('工资:'||v_sal);
END;
/
12-5:变量名不能与列名相同
DECLARE
empno NUMBER(6):=7788;
v_ename VARCHAR2(10);
BEGIN
SELECT ename INTO v_ename FROM emp
WHERE empno=empno;
END;
/
12-6:使用values子句插入数据
DECLARE
v_deptno dept.deptno%TYPE;
v_dname dept.dname%TYPE;
BEGIN
v_deptno:=&no;
v_dname:='&name';
INSERT INTO dept (deptno,dname)
VALUES(v_deptno,v_dname);
END;
/
12-7:使用子查询插入数据
DECLARE
v_deptno emp.deptno%TYPE:=&no;
BEGIN
INSERT INTO employee
SELECT * FROM emp WHERE deptno=v_deptno;
END;
/
12-8:使用表达式更新列值
DECLARE
v_deptno dept.deptno%TYPE:=&no;
v_loc dept.loc%TYPE:='&loc';
BEGIN
UPDATE dept SET loc=v_loc
WHERE deptno=v_deptno;
END;
/
12-9:使用子查询更新列值
DECLARE
v_ename emp.ename%TYPE:='&name';
BEGIN
UPDATE emp SET (sal,comm)=
(SELECT sal,comm FROM emp WHERE ename=v_ename)
WHERE job=(SELECT job FROM emp WHERE ename=v_ename);
END;
/
12-10:使用变量删除数据
DECLARE
v_deptno dept.deptno%TYPE:=&no;
BEGIN
DELETE FROM dept WHERE deptno=v_deptno;
END;
/
12-11:使用子查询删除数据
DECLARE
v_ename emp.ename%TYPE:='&name';
BEGIN
DELETE FROM emp
WHERE deptno=(SELECT deptno FROM emp
WHERE ename=v_ename);
END;
/
12-12:sql%found
DECLARE
v_deptno emp.deptno%TYPE:=&no;
BEGIN
UPDATE emp SET sal=sal*1.1
WHERE deptno=v_deptno;
IF SQL%FOUND THEN
dbms_output.put_line('删除了'||SQL%ROWCOUNT||'行');
ELSE
dbms_output.put_line('该部门不存在雇员');
END IF;
END;
/
12-13:sql%notfound
DECLARE
v_deptno emp.deptno%TYPE:=&no;
BEGIN
UPDATE emp SET sal=sal*1.1
WHERE deptno=v_deptno;
IF SQL%NOTFOUND THEN
dbms_output.put_line('该部门不存在雇员');
ELSE
dbms_output.put_line('删除了'||SQL%ROWCOUNT||'行');
END IF;
END;
/
12-14:sql%rowcount
DECLARE
v_deptno emp.deptno%TYPE:=&no;
BEGIN
UPDATE emp SET sal=sal*1.1
WHERE deptno=v_deptno;
dbms_output.put_line('修改了'||SQL%ROWCOUNT||'行');
END;
/
12-15:commit和rollback
DECLARE
v_sal emp.sal%TYPE:=&salary;
v_ename emp.ename%TYPE:='&name';
BEGIN
UPDATE emp SET sal=v_sal WHERE ename=v_ename;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
/
12-16:rollback和savepoint
BEGIN
INSERT INTO temp VALUES(1);
SAVEPOINT a1;
INSERT INTO temp VALUES(2);
SAVEPOINT a2;
INSERT INTO temp VALUES(3);
SAVEPOINT a3;
ROLLBACK TO a2;
COMMIT;
END;
/
分享到:
相关推荐
Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...
### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...
以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...
这篇学习笔记将深入探讨这两个系统的概念、特性和应用。 一、Oracle数据库系统 Oracle数据库是由甲骨文公司开发的一款强大、高性能的数据库解决方案。其主要特点包括: 1. **分布式数据库**:Oracle支持多节点的...
这份"oracle官方中文文档+学习笔记"资源为初学者和经验丰富的DBA提供了宝贵的参考资料,可以帮助他们深入理解Oracle数据库的核心概念和技术。 Oracle 10g Concepts文档是Oracle数据库10g版本的主要理论指南,它详细...
### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...
以下是对这份"最牛逼的Oracle 11g OCP学习笔记"中的关键知识点的详细阐述: 一、Oracle 11g基础知识 Oracle 11g引入了许多新特性,如自动内存管理、数据屏蔽、实时应用集群(RAC)、闪回数据库等。其中,自动内存管理...
Oracle 12c 学习笔记 本文档旨在为读者提供 Oracle 12c 的基础知识,涵盖 Oracle 的基本介绍、存储的介绍、基本数据对象、表空间的管理、升级到 Oracle 12c 以及数据库的物理布局和存储管理等方面。 Oracle 体系...
在“MSDN Oracle学习笔记”中,我们可以期待找到关于Oracle数据库的详细讲解和实践指导。 首先,Oracle数据库的基础知识是必不可少的。这通常涵盖数据库系统的基本概念,如SQL(结构化查询语言)的使用,数据类型,...
本"Oracle超强学习笔记"将带你深入探索Oracle的世界,掌握从基础到高级的各种技术,助你在数据库管理领域提升专业技能。 1. **Oracle简介** Oracle数据库是由美国甲骨文公司开发的关系数据库系统,其核心组件包括...
Oracle 认证学习笔记 本文档主要讲述 Oracle 认证学习笔记,涵盖了 Oracle 数据库体系结构基础、系统全局区(SGA)、实例(Instance)、Oracle 存储器结构等知识点。 一、 Oracle 数据库体系结构基础 Oracle ...
韩顺平2011年的Oracle学习笔记主要涵盖了Oracle的基本使用方法,包括一系列的基本命令。 1. **连接命令**:在Oracle中,我们通常使用SQL*Plus作为客户端工具连接到数据库服务器。连接命令是`sqlplus [username/...
这些文件名揭示了笔记本学习笔记中的主要内容,集中在Oracle数据库管理和SQL知识上。下面将详细解释这些知识点: 1. **DML(Data Manipulation Language)事务**:20120328-DML-Transaction.rar可能包含关于如何在...
"Oracle经典学习笔记"显然是一份全面且深入的教程,旨在帮助学习者掌握Oracle的核心概念和技术。这份笔记可能包含了从基础到高级的各种主题,确保读者能够系统地理解和应用Oracle。 1. **Oracle基础知识**: Oracle...
12. **Oracle逻辑结构**: 由表空间、段、区、数据库块构成,其中数据库块是最小I/O单位,大小由参数DB_BLOCK_SIZE定义。 这些知识点构成了Oracle数据库的基础架构和运行机制,对于理解和操作Oracle数据库至关重要。...
最后,笔记可能还会包含Oracle的安全管理,包括用户权限、角色、审计和访问控制等内容,这对于确保数据库的安全性至关重要。 总的来说,李兴华Oracle全部笔记是一份全面且深入的Oracle学习资料,不仅适合初学者入门...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,用于...以上就是Oracle数据库学习笔记中涉及的主要知识点,对于理解和操作Oracle数据库至关重要。深入理解和掌握这些概念,将有助于你成为更优秀的数据库管理员。
本文将详述“Oracle学习笔记001_oracle10g安装”中的关键知识点,帮助初学者理解并掌握Oracle 10g的安装过程。 首先,安装Oracle 10g前,需要确保你的操作系统环境满足其兼容性要求。Oracle 10g支持Windows、Linux...