- 浏览: 1019705 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。SELECT INTO语法如下:
SELECT [DISTICT|ALL]{*|column[,column,...]} INTO (variable[,variable,...] |record) FROM {table|(sub-query)}[alias] WHERE............ PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标(对游标的讨论我们将在后面进行),INTO子句中要有与SELECT子句中相同列数量的变量。INTO子句中也可以是记录变量。
%TYPE属性 例: 其他DML语句 其它操作数据的DML语句是:INSERT、UPDATE、DELETE和LOCK TABLE,这些语句在PL/SQL中的语法与在SQL中的语法相同。我们在前面已经讨论过DML语句的使用这里就不再重复了。在DML语句中可以使用任何在DECLARE部分声明的变量,如果是嵌套块,那么要注意变量的作用范围。
例: DML语句的结果 SQL%FOUND和SQL%NOTFOUND . TRUE :INSERT SQL%ROWCOUNT SQL%ISOPEN 事务控制语句 事务是一个工作的逻辑单元可以包括一个或多个DML语句,事物控制帮助用户保证数据的一致性。如果事务控制逻辑单元中的任何一个DML语句失败,那么整个事务都将回滚,在PL/SQL中用户可以明确地使用COMMIT、ROLLBACK、SAVEPOINT以及SET TRANSACTION语句。 COMMIT语句终止事务,永久保存数据库的变化,同时释放所有LOCK,ROLLBACK终止现行事务释放所有LOCK,但不保存数据库的任何变化,SAVEPOINT用于设置中间点,当事务调用过多的数据库操作时,中间点是非常有用的,SET TRANSACTION用于设置事务属性,比如read-write和隔离级等。
显式游标 使用游标 声明游标 在PL/SQL中游标名是一个未声明变量,不能给游标名赋值或用于表达式中。 例:
从游标提取数据
例: 记录变量
例:
%ROWTYPE也可以用游标名来定义,这样的话就必须要首先声明游标:
SET SERVERIUTPUT ON 带参数的游标
CURSOR cursor_name[(parameter[,parameter],...)] IS select_statement;
定义参数的语法如下:
与存储过程不同的是,游标只能接受传递的值,而不能返回值。参数只定义数据类型,没有大小。
在打开游标时给参数赋值,语法如下:
OPEN cursor_name[value[,value]....];
例: 游标FOR循环
FOR record_name IN
下面我们用for循环重写上面的例子: 在游标FOR循环中使用查询
游标中的子查询 游标中的更新和删除
语法:
WHERE{CURRENT OF cursor_name|search_condition}
例: |
--===================动态SQL=================--
VARIABLE maxsal NUMBER; --声明变量
EXECUTE :maxsal := 2500; --执行引用并给变量赋值
DECLARE
r_emp EMP%ROWTYPE; --声明一个行类型变量
TYPE c_type IS REF CURSOR; --声明REF游标类型
cur c_type; --声明REF游标类型的变量
p_salary NUMBER; --声明一个标量变量
BEGIN
p_salary := :maxsal; --引用变量
--使用USING语句将引用到的值传给动态SQL语句'SAL >: 1'中的'1'
OPEN cur FOR 'SELECT * FROM EMP WHERE SAL >: 1 ORDER BY SAL DESC'
USING p_salary;
DBMS_OUTPUT.PUT_LINE('薪水大于' || p_salary || '的员工有:');
LOOP
FETCH cur
INTO r_emp;
EXIT WHEN cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('编号:' || r_emp.empno || '姓名:' || r_emp.ename ||
'薪水:' || r_emp.sal);
END LOOP;
CLOSE cur; --关闭游标
END;
发表评论
-
sqlldr总结参数介绍
2012-06-28 14:29 22819有效的关键字: userid -- ORACLE use ... -
11gR2新特性:STANDBY_MAX_DATA_DELAY
2011-12-27 11:18 1210Active Data Guard 是 Oracle 11g ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2898首先,去oracle官网下载C ... -
Oracle Mutex实现机制
2011-05-18 23:43 1064我们都知道Latch是Oracle ... -
local_listener参数作用
2011-05-10 17:19 1924pmon只会动态注册port等于1521的监听,否则 ... -
oracle伪列 rowid和rownum
2011-03-23 10:00 3531整理ROWID一 一,什么是伪列RowID?1,首先是一种数 ... -
Oracle10gR2 主备自动切换之客户端Failover配置
2011-01-20 10:32 9501. 主库检查和设置假设新增的服务名为ORCL_TAF.LK. ... -
Oracle10g配置Dataguard的相关参数解释
2011-01-20 10:24 1264参考自 http://space.itpub.ne ... -
wrap加密oracle包
2011-01-19 11:52 1296大家都知道oracle的很多系统包是没法看它的源码的,orac ... -
利用hcheck检查数据字典一致性状态
2011-01-17 17:42 1812利用hcheck可以检查oracle数据字典的一致性状态,主要 ... -
插入相同的数据量普通表和临时表产生的redo对比
2011-01-17 16:08 985往临时表里插入相同量 ... -
Database Link与GLOBAL_NAMES参数
2011-01-12 13:36 1027当GLOBAL_NAMES参数设置为TRUE时,使用DATAB ... -
Oracle Streams学习二(清除流配置)
2011-01-09 23:34 1179在完成streams部署之后,如果需要重新配置或舍弃配置,可以 ... -
red hat enterprise 下完全删除oracle 数据库
2011-01-05 01:28 1756步骤 1 以oracle用户登录主、备节点。步骤 2 ... -
Oracle常用dump命令
2010-12-20 00:31 831Oracle常用dump命令,记录一下备查。 一.M ... -
oracle执行DML(事物过程)的深入研究(二)
2010-12-14 15:02 1535接上一节的 oracle执行DML(事物过程)的深入研究(一) ... -
oracle执行DML(事物过程)的深入研究(一)
2010-12-14 10:26 2802用户所执行 DML (即执行事务)操作在 Oracle 内部按 ... -
Oracle基本数据类型存储格式研究(二)—数字类型
2010-12-14 00:35 1471数字类型包含number,intege ... -
Oracle基本数据类型存储格式研究(一)—字符类型
2010-12-13 23:32 11701.char char是定长字符型,内部代码是:96,最多可 ... -
关于oracle rowid的一些内容 -- 转载
2010-12-13 15:47 779本文讨论的是关于oracle ...
相关推荐
根据提供的Oracle管道函数和动态游标的代码片段及描述,我们可以深入了解其背后的技术要点与实现细节。下面将逐一解析这些知识点。 ### Oracle管道函数 管道函数(Pipe-lined Function)是Oracle中一种特殊类型的...
在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...
4. **动态SQL与游标**:当必须使用动态SQL时,可以考虑使用Ref Cursor来返回结果集,这样可以减少客户端与服务器之间的通信开销。 5. **调整系统参数**: - `OPEN_CURSORS`:设置Oracle实例可以打开的最大游标数量...
根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...
Oracle存储过程返回游标是一种常见的数据处理方式,它允许开发者在存储过程中执行SQL查询并返回结果集,供调用者进一步处理。游标在数据库编程中扮演着重要角色,尤其在处理多行记录时,提供了灵活的数据遍历手段。...
在Oracle数据库管理中,通过PL/SQL块执行动态SQL语句是一项非常重要的技能。其中一个核心功能就是`EXECUTE IMMEDIATE`,它允许开发者在运行时构建并执行SQL语句。这在需要动态生成SQL查询或DML(数据操纵语言)操作...
8. 游标:Oracle 数据库的游标可以用来对查询结果进行处理,包括隐式游标、显式游标、REF 游标等。 9. PL/SQL:PL/SQL 是 Oracle 数据库的 Procedure Language,可以用来编写存储过程、函数、触发器等,以实现业务...
- **Oracle实例与数据库**:区分Oracle实例和数据库的概念。 - **内存结构**:SGA和PGA的组成及其作用。 - **后台进程**:PMON、SMON等后台进程的功能。 - **文件结构**:数据文件、日志文件、控制文件等。 #### 第...
- **REF游标**:动态返回结果集,用于PL/SQL函数和过程之间传递数据集合。 ### 过程、函数和程序包 #### 过程和函数 - **过程**:可包含多个SQL语句和PL/SQL控制结构,可以有输入参数、输出参数,但没有返回值。 -...
Oracle 存储过程是数据库管理中的重要组成部分,它是一组为了完成特定功能的SQL语句集,被编译后存储在数据库中,可以被多次调用。本篇将深入探讨Oracle存储过程的基础知识、语法、常见问题以及如何通过Java进行调用...
在本实例中,我们将探讨如何创建和使用这两个特性。 首先,存储过程是预编译的SQL和PL/SQL代码集合,可以在需要时多次调用,以提高性能并简化代码管理。在给出的例子中,有两个存储过程: 1. `GetRecords` 这个...
Oracle 存储过程是数据库管理中的重要组成部分,它是一组为了完成特定功能的SQL语句集,被编译存储在数据库中,可以被多次调用,以提高应用程序的执行效率和性能。以下是对Oracle存储过程的详细解释和实例分析。 1....
3. **返回列表**:使用`REF CURSOR`类型作为`OUT`参数,返回一个游标,Java中需遍历并处理结果集。 ### 存储过程中的动态查询 1. **本地动态SQL**:使用`EXECUTE IMMEDIATE`执行动态构建的SQL语句,适用于运行时不...
#### 七、Oracle高效分页存储过程实例 - **实现思路**: 使用ROWNUM和游标来实现高效的分页查询。 - **示例**: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page IN NUMBER, p_size IN NUMBER, ...
在Oracle中,游标(Cursor)是处理SQL查询结果集的一种重要工具,尤其在PL/SQL编程中不可或缺。本教程将深入讲解Oracle中的游标、集合以及面向对象编程(OOP)的概念。 首先,游标允许我们逐行处理查询结果,分为...
### Oracle中创建存储过程的具体实现实例 #### 一、存储过程概述 存储过程是一种数据库对象,可以在数据库服务器上预编译并保存,之后通过名称来调用执行。它能够接收输入参数,处理业务逻辑,并返回结果。存储...
3) 参考型:REF CURSOR(游标)、REF object_type 4) LOB(Large Object) 2. %TYPE [变量名] [表名.字段名] [%TYPE] 表示变量具有与数据库的表中某一字段相同的类型 例:v_FirstName s_emp.first_name%TYPE;...
- **REF游标**: 用于返回引用其他游标的游标。 - **显式游标**: 由程序员显式定义和控制的游标。 #### 21. 子程序和常量声明 - **题目解析**:公用的子程序和常量应在包规范中声明。 - **知识点说明**: - **...