PL/SQL 游标变量

深入理解游标变量与动态SQL在PL/SQL中的应用 本篇博客详细探讨了在PL/SQL中使用游标变量和动态SQL的概念、特点及其在程序设计中的重要性。通过实例分析,讲解了如何在独立存储过程中使用游标变量、如何定义引用游标的返回类型、如何关闭游标变量以及游标变量的相关限制。同时,本文也深入解析了动态SQL的实现原理和使用方法,包括如何通过DBMS_SQL包解析和执行SQL语句。最后,文章介绍了WITH INTERFACE子句的用法,该子句允许将PL/S... 阅读详情

游标变量与游标相似,有其共性,也有其不同点。就其共性来说两者都是指向多行查询的结果集中的当前行。都要经历声明,打开,检索与
关闭的过程。所不同的是游标与游标变量类似于常量与变量。游标是静态的,而游标变量是动态的,因为游标变量并不与某个特定的查询相绑定。
所以,游标变量可以打开任何类型兼容的查询。其次可以将游标变量作为参数传递给本地和存储子程序。本文主要描述游标变量的使用。

一、什么是游标变量
显示游标用于命名一个工作区域,其中保存多行查询的信息,而且该游标始终指向工作区域的内容。而游标变量类似于C 或Pascal 语言中
的指针,它指向一块内存地址,而不是地址中的内容本身。所以,声明一个游标变量可以创建一个指针,而不是具体的内容。
在PL/SQL 中,为创建游标变量,首先需要申明一个REF CURSOR类型,然后声明该类型的一个变量。
为了执行多行查询,Oracle 会开启一个未命名的工作区来存放处理信息。我们可以用显式游标为工作区命名然后访问相关的信息;或者声
明指向工作区的一个游标变量。无论在什么地方使用游标,它总是指向同一个查询工作区,而游标变量则可以指向不同的工作区。
所以,游标和游标变量不能交互使用;也就是说,我们不能在该使用游标的地方使用游标变量,不能在该使用游标变量的地方使用游标。

二、游标变量使用的情形
PL/SQL 存储子程序和各种客户端之间可以使用游标变量来传递查询结果,这是游标变量最主要的作用。PL/SQL 和其他客户端程序都不拥有
结果集,它们只是共享一个指向存放结果集工作区的指针而已。例如,一个OCI 客户端,一个Oracle Forms 应用程序和Oracle 服务器可以引用
同一个工作区。只要有游标变量指向查询工作区,我们就可以引用它。因此,我们可以把游标变量的值自由地从一个作用域传递到另一个。
例如,我们把主游标变量传递到嵌套在Pro*C 程序中的PL/SQL 块,游标变量指向的工作区就可以被访问。
如果客户端含有PL/SQL 引擎,那么从客户端调用服务器端就不会有什么约束。假如我们在客户端声明游标变量,在服务器端打开并取得数
据,然后把取得的结果返回给客户端。这些操作都是在服务器端完成,从而也减少了网络流量。

三、使用游标变量的几个关键步骤
1、定义和声明游标变量
TYPE ref_type_name IS REF CURSOR [RETURN return_type]; –必须先定义REF CURSOR类型
cursor_variable ref_type_name; –接下来再定义游标变量

    ref_type_name:   指定自定义的类型名
    RETURN:          指定REF CURSOR返回结果的数据类型
    cursor_variable: 定义游标变量的名字
    注:若指定RETURN子句,其数据类型必须是记录类型,此外,不能在包规范中定义游标变量。
        其次若指定RETURN子句则为强游标类型,否则,为弱游标类型。
        能够把一个强类型与类型兼容的查询相关联,而若类型可以与任何查询相关联。故强类型游标变量出错概率低,而弱类型更灵活。

2、打开游标变量
当打开游标变量时,则此时游标变量便与特定的SELECT语句关联,执行该查询,标识结果集。使用OPEN FOR可以为不同的查询打开相同的游
标变量。再次打开它之前,无需关闭游标变量,但之前的查询会全部丢失。
OPEN cursor_variable FOR select_statement;

3、从结果集检索数据行
每次从结果集检索一次。需要注意的是强类型返回的数据类型必须与FETCH 语句中INTO所使用的变量类型兼容。
其次查询列值的数量必须等于变量的数量,如果数量不匹配,则强类型在编译时出错,而弱类型则在运行时出错。
FETCH cursor_variable INTO variable1,…variable2 ; –提取单行数据,需要配合循环语句来使用
FETCH cursor_variable BULK COLLECT INTO collect1,collect2,…[LIMIT rows]; –提取多行数据,collect为集合变量
4、关闭游标变量
CLOSE cursor_vairable;

四、定义REF CURSOR与声明游标变量示例

[sql] view plaincopyprint?–PL/SQL块内声明游标变量
DECLARE
TYPE emp_cur_type IS REF CURSOR RETURN emp%ROWTYPE; –>定义具有返回类型的游标类型,此为强类型
TYPE dept_cur_type IS REF CURSOR; –>定义无返回类型的游标类型,此为弱类型
emp_cv emp_cur_type; –>接下来声明两个游标变量
dept_cv dept_cur_type;
BEGIN
NULL;
END;

–使用%type来定义游标变量的返回类型
DECLARE
emp_type emp%ROWTYPE; –>定义了一个隐式记录类型
TYPE emp_cur_type IS REF CURSOR RETURN emp_type%TYPE; –>定义游标类型且使用%TYPE来返回的数据类型
emp_cv emp_cur_type; –>声明游标变量
BEGIN
NULL;
END;

–基于自定义的记录类型作为游标变量的返回类型
DECLARE
TYPE emp_rec_type IS RECORD –>定义了一个用户自定义的记录类型
(
empno NUMBER( 4 )
,ename VARCHAR2( 10 )
,hiredate emp.hiredate%TYPE
);

TYPE emp_cur_type IS REF CURSOR RETURN emp_rec_type; –定义具有返回类型的游标类型,且返回类型为用户自定义的记录类型
emp_cv emp_cur_type; –声明游标变量
BEGIN
NULL;
END;

–游标变量作为函数或过程的参数
DECLARE
TYPE emp_cur_type IS REF CURSOR –>定义一个游标类型,其返回类型为emp的记录类型
RETURN emp%ROWTYPE;

emp_cur emp_cur_type; –>声明游标变量

–下面的本地过程用于处理游标变量的结果集
–注,对于游标变量返回的结果集是一次性处理,而非对返回的每一行记录调用一次过程
PROCEDURE process_emp_cv( emp_cv IN emp_cur_type ) IS –>形参emp_cv使用了emp_cur_type游标类型
person emp%ROWTYPE;
BEGIN
DBMS_OUTPUT.put_line( ‘—–’ );
DBMS_OUTPUT.put_line( ‘Here are the names from the result set:’ );

  LOOP  
     FETCH emp_cv INTO person;  

     EXIT WHEN emp_cv%NOTFOUND;  
     DBMS_OUTPUT.put_line( 'Name = ' || person.ename || ' ' || person.hiredate );  
  END LOOP;  

END;
BEGIN
OPEN emp_cur FOR SELECT * FROM emp WHERE deptno = 10; –>使用游标变量打开游标

process_emp_cv( emp_cur ); –>调用本地过程处理打开的游标变量

CLOSE emp_cur; –>显示关闭游标变量

OPEN emp_cur FOR SELECT * FROM emp WHERE job LIKE ‘CLERK’; –>再次打开游标变量且返回了不同的结果集

process_emp_cv( emp_cur ); –>调用本地过程处理打开的游标变量

CLOSE emp_cur; –>显示关闭游标变量
END;
五、游标变量使用示例
[sql] view plaincopyprint?1、包中使用游标变量
CREATE PACKAGE emp_data AS
TYPE empcurtyp IS REF CURSOR
RETURN emp%ROWTYPE;

PROCEDURE open_emp_cv( emp_cv IN OUT empcurtyp );
END emp_data;

CREATE OR REPLACE PACKAGE BODY emp_data AS
PROCEDURE open_emp_cv( emp_cv IN OUT empcurtyp ) IS
each_emp emp%ROWTYPE;
BEGIN
OPEN emp_cv FOR
SELECT *
FROM emp
WHERE ename LIKE ‘A%’;
END open_emp_cv;
END emp_data;

2、游标变量绑定到不同的返回类型(弱类型)
CREATE PACKAGE get_data AS
TYPE ref_cur_type IS REF CURSOR;

PROCEDURE open_cv( ref_cv IN OUT ref_cur_type, choice INT );
END get_data;

CREATE PACKAGE BODY get_data AS
PROCEDURE open_cv (ref_cv IN OUT ref_cur_type, choice INT) IS
BEGIN
IF choice = 1 THEN
OPEN ref_cv FOR SELECT * FROM emp;
ELSIF choice = 2 THEN
OPEN ref_cv FOR SELECT * FROM dept;
ELSIF choice = 3 THEN
OPEN ref_cv FOR SELECT * FROM bonus;
END IF;
END;
END get_data;

3、强类型
DECLARE
TYPE emp_rec_type IS RECORD –>定义一个记录类型
(
empno emp.empno%TYPE
,ename emp.ename%TYPE
,hiredate emp.hiredate%TYPE
);

TYPE ref_cur_type IS REF CURSOR –>定义了一个游标变量且返回类型为emp_rec_type的记录类型
RETURN emp_rec_type;

emp_cv ref_cur_type; –>声明游标变量
emp_rec emp_rec_type; –>声明记录类型变量
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, hiredate
FROM emp
WHERE ename LIKE ‘A%’;

LOOP
FETCH emp_cv INTO emp_rec; –>将游标变量的结果保存到记录变量中

  EXIT WHEN emp_cv%NOTFOUND;  
  DBMS_OUTPUT.put_line( 'Name = ' || emp_rec.ename || '; ' || 'Hire Date = ' || emp_rec.hiredate );  

END LOOP;

CLOSE emp_cv;
END;

4、绑定游标变量的结果到集合
DECLARE
TYPE emp_rec_type IS RECORD –>定义一个记录类型
(
empno emp.empno%TYPE
,ename emp.ename%TYPE
,hiredate emp.hiredate%TYPE
);

TYPE emp_nst_type IS TABLE OF emp_rec_type –>定义基于记录类型的联合数组
INDEX BY PLS_INTEGER;

TYPE ref_cur_type IS REF CURSOR –>定义游标变量并返回记录类型
RETURN emp_rec_type; –>此处如果使用emp_nst_type会收到错误

emp_cv ref_cur_type; –>声明游标变量
emp_collect emp_nst_type; –>声明复合数据类型变量
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, hiredate
FROM emp
WHERE ename LIKE ‘A%’;

FETCH emp_cv
BULK COLLECT INTO emp_collect; –>使用bulk collect into将游标记录批量提取到复合变量中

CLOSE emp_cv;

FOR i IN emp_collect.FIRST .. emp_collect.LAST –>输出复合变量中的结果
LOOP
DBMS_OUTPUT.put_line( ‘Name = ’ || emp_collect( i ).ename || ‘, hiredate = ’ || emp_collect( i ).hiredate );
END LOOP;
END;

5、SQL*Plus中操作游标变量
–下面基于前面定义的包get_data,我们在SQL*Plus中来调用包中的游标变量并返回数据
scott@CNMMBO> variable lv_ref_cv refcursor;
scott@CNMMBO> variable lv_choice number;
scott@CNMMBO> exec :lv_choice:=2;

PL/SQL procedure successfully completed.

scott@CNMMBO> exec get_data.open_cv(:lv_ref_cv,:lv_choice);

PL/SQL procedure successfully completed.

scott@CNMMBO> print lv_ref_cv

DEPTNO DNAME          LOC  

    10 ACCOUNTING     NEW YORK  
    20 RESEARCH       DALLAS  
    30 SALES          CHICAGO  
    40 OPERATIONS     BOSTON  

6、PL/SQL中调用包中的游标变量
DECLARE
v_ref_cv get_data.ref_cur_type; –>声明一个基于包的弱类型游标变量
v_ref_cv_rec dept%ROWTYPE; –>由于为弱类型,所以我们使用了对应表的记录类型作为返回类型来声明记录变量
–>如果包中定义的为强类型游标变量,则上面的声明可以直接写为return_type%rowtype
v_choice PLS_INTEGER := 2;
BEGIN
get_data.open_cv( v_ref_cv, v_choice );

LOOP
FETCH v_ref_cv INTO v_ref_cv_rec;

  EXIT WHEN v_ref_cv%NOTFOUND;  
  DBMS_OUTPUT.put_line( 'current rec is ' || v_ref_cv_rec.dname || ',' || v_ref_cv_rec.loc );  

END LOOP;
END;

–>Author : Robinson Cheng
–>Blog : http://blog.youkuaiyun.com/robinson_0612
current rec is ACCOUNTING,NEW YORK
current rec is RESEARCH,DALLAS
current rec is SALES,CHICAGO
current rec is OPERATIONS,BOSTON

PL/SQL procedure successfully completed.

7、基于弱类型定义返回类型导致异常
DECLARE
TYPE weak_ref_cur_type IS REF CURSOR;

weak_ref_cur weak_ref_cur_type;
weak_ref_rec weak_ref_cur%ROWTYPE; –>产生一个 PL/SQL 320 错误
– weak_ref_rec dept%ROWTYPE; –> 正确,使用自定义的返回类型
– weak_ref_rec emp%ROWTYPE; –>如果定义了与返回类型不兼容的类型则在运行时出现异常
–>ORA-06504: PL/SQL: Return types of Result Set variables or query do not match
BEGIN
OPEN weak_ref_cur FOR SELECT * FROM dept;

FETCH weak_ref_cur INTO weak_ref_rec;

DBMS_OUTPUT.put_line( ‘Current Rec is ’ || weak_ref_rec.dname || ‘,’ || weak_ref_rec.loc );

CLOSE weak_ref_cur;
END;

ERROR at line 5:
ORA-06550: line 5, column 24:
PLS-00320: the declaration of the type of this expression is incomplete or malformed
ORA-06550: line 5, column 24:
PL/SQL: Item ignored
ORA-06550: line 10, column 28:
PLS-00320: the declaration of the type of this expression is incomplete or malformed

8、强类型编译时异常
–>下面定义的强类型游标变量中返回类型不兼容,则编译时抛出异常
DECLARE
TYPE strong_ref_cur_type IS REF CURSOR
RETURN emp%ROWTYPE;

strong_ref_cur strong_ref_cur_type;
strong_ref_rec emp%ROWTYPE;
BEGIN
OPEN strong_ref_cur FOR SELECT * FROM dept; –>定义的返回类型为emp%ROWTYPE,而此时的查询为dept表类型

FETCH strong_ref_cur INTO strong_ref_rec;

CLOSE strong_ref_cur;
END;

ERROR at line 8:
ORA-06550: line 8, column 28:
PLS-00382: expression is of wrong type
ORA-06550: line 8, column 4:
PL/SQL: SQL Statement ignored
六、使用游标变量注意事项
1、不能在包规范中定义游标变量
2、不能在其它服务器的远程子程序中使用游标变量,不能把游标变量传给通过数据库连接被调用的过程
3、当处理游标变量时,不要一起使用FOR UPDATE和OPEN FOR
4、不能使用比较运算符来测试游标变量的等价性、不等价性或者非空性
5、游标变量不能被赋予NULL值
6、REF CURSOR类型不能在CREATE TABLE或者VIEW语句中使用,因为不存在数据库列的等价数据类型
7、使用游标变量的存储过程只能被用作查询块数据源,它不能用于DML块数据源。REF CURSOR适合于只依赖于SQL语句中(不是PL/SQL语句中)变
量的查询
8、不能在联合数组、嵌套表、或者变长数组中存储游标变量
9、如果向PL/SQL传递主机游标变量,不能在服务器检索它,除非是在相同服务器调用中打开它

Geneformer实战指南:基于Hugging Face Transformers的基因序列分类模型解析 本文详细解析了基于Hugging Face Transformers的Geneformer模型在基因序列分类任务中的应用。通过介绍模型架构、数据处理流程和实战案例,帮助生物信息学研究者掌握这一前沿技术,实现高效的基因表达数据分析与分类。 阅读详情

相关推荐

MCNP 减方差技巧(最全)

MCNP的减方差技巧,核心在于不显著增加计算时间的前提下,通过修改模拟过程来降低结果的统计误差。尤其适用于,这类问题中粒子很难到达探测器区域,直接模拟效率极低栅元重要性是常用的减方差技巧,该方法主要对计算模型的不同区域定义不同的重要性数值。当粒子从重要性低的区域废物重要性高的区域,产生更多粒子,增大统计量;当从重要性高的区域进入重要性低的区域,会进行,增快计算效率。n= 中子,N;光子,P;电子 Exi= 栅元i的重要性I=栅元总数项目IMP卡是必须的,除非使用了WWN卡如果粒子进入0。

chencheng1127的博客 926

SQL查询艺术学习笔记--游标

sql 游标 游标变量

诚实的大熊猫 458

codevs 1620 轮船问题 DP 解题报告

某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市。

Hawo11的博客 817

游标 定义 及 分类 与 游标变量

一、游标定义 游标是一种 PL/SQL 控制结构;可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理。 游标并不是一个数据库对象,只是存留在内存中 操作步骤: 逐条进行处理。 游标并不是一个数据库对象,只是存留在内存中 操作步骤: • 声明游标 • 打开游标 • 取出结果,此时的结果取出的是一行数据 • 关闭游标 到底那种类型可以把一行的数据都装进

qq_34283987的博客 2308

Proteus仿真AT89C51驱动DHT11:温湿度数据采集与LCD1602显示的5个调试坑点总结

本文总结了在Proteus仿真环境下使用AT89C51驱动DHT11温湿度传感器并通过LCD1602显示的5个常见调试坑点,包括DHT11时序问题、LCD1602初始化错误、数据校验失败、仿真特有差异及系统稳定性问题,提供了详细的解决方案和优化代码示例,帮助开发者高效完成温湿度采集项目。

weixin_30335575的博客 355

CATIA高效设计:自定义快捷键全攻略

本文详细介绍了如何在CATIA中自定义快捷键以提升设计效率。通过减少鼠标依赖、优化工作流程和减轻手腕疲劳,合理设置快捷键可显著提高建模速度。文章提供了从基础设置到高级配置的全流程指南,包括解决冲突、推荐方案及外设扩展建议,帮助用户快速掌握CATIA高效设计技巧。

weixin_42648844的博客 584

游标变量

一,游标与游标变量的区别         游标相当于常量,是静态的,他是sql语句查询出的固定的结果集。而游标变量是一个游标的引用,可以对其赋值。 二。游标变量的特点        1.在不同的时刻可以将游标变量关联到不同的查询语句。        2 可以将游标变量作为参数传递给一个过程或函数,通过传递引用来共享游标结果集。 三,创建和声明       1 创建一个游标变量

kao123yaojinqian的专栏 844

sentaurus学习笔记(一)器件仿真

之前有跟大家说,以后转到sentaurus,因此silvaco会用的比较少,结果发现真的有一点贪心厌旧的感觉,现在基本上不用silvaco(lll¬ω¬)故这篇文章,将为大家带来的是关于sentaurus的结构仿真和器件的特性的提取。我们还是老规矩,先上结构图。 还是一个经典的IGBT结构,这是一个典型的N型IGBT,下面我将把一些相关的结构,和具体的写法用下面一幅图表达出来。 这里因为方便看,我们把器件的比例画的比较抽象。可以看到的是,这里有很多的距离参数是用一些变量名来写的,这也是sentaurus

weixin_43262021的博客 2万+

Oracle 动态sql 打开 sys_refcursor 游标类型

declare     v_sql varchar2(2000);     --type cur_type is ref sys_refcursor; --PLS-00103: Encountered the symbol "SYS_REFCURSOR" when expecting one of the following: cursor     --v_out cur_type;     v...

许恒的博客 3020

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

分布式训练中All-Reduce、All-Gather、Reduce-Scatter原理

Reduce-Scatter = 先对所有进程的数据做 Reduce(如 sum / mean),再把结果“切分”分发给各进程。(是 Reduce + Scatter 的融合操作。

comli_cn的博客 341

PL/SQL变量与游标

DECLARE i NUMBER; a student.sname%TYPE;--引用型变量 b student%ROWTYPE;--记录型变量 BEGIN i := 101; --SELECT student.sname INTO a FROM student WHERE student.sno = i; --dbms_output.put...

dizhuangla6673的博客 143

0基础学习diffusion_model扩散模型【易理解的公式推导】Denoising Diffusion Probabilistic Models

去噪扩散概率模型。本文是笔者在学习扩散模型时的一些笔记与心得,在公式推导过程中能够保证自己是一步一步去推导并且理解了的。概述是我认为比较重要的部分能够帮助理解公式的推导,具体的公式推导在每一小节中进行。1、扩散过程:如上图所示,扩散过程为从右到左X0→XTX0​→XT​的过程,表示对图片逐渐加噪,且Xt1X_{t+1}Xt1​是在XtX_{t}Xt​加躁得到的,其只受XtX_{t}Xt​的影响,因此扩散过程是一个马尔科夫过程。X0X_0。

zik的博客 2397

Oracle中PL/SQL之常量和变量的定义、游标(光标)的使用

PL/SQL常量和变量的定义 变量的数据类型:char、varchar2、date、number、boolean、long 常量定义:isshow boolean :=true; 说明变量:说明变量名、数据类型和长度后用分号结束说明语句。例:e_name varchar2(20); 引用变量:e_name的类型与emp表中ename列的类型一样。例:e_name emp.ename%typ...

傲凝的博客 4023

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PL/SQL中游标和游标变量的使用

PL/SQL中游标和游标变量的使用 游标是什么: 游标字面理解就是游动的光标。 用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。 在Oracle9i之前,使用FETCH语句每次只能提取一行数据;从Oracle9i开始,通过使用FETCH…BULK

韬晦潜胖蛇的专栏 1524

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

脑电预处理中的PCA:原理、实操与参数选择

主成分分析(PCA)是一种经典的多变量统计方法,通过正交变换将高维数据映射到方差最大的方向上,在信号处理中广泛用于降维与噪声抑制。其数学原理基于协方差矩阵的特征分解,能够以较低维度保留数据的主要能量。在脑电信号处理中,PCA常被用于眨眼、心电等规则性伪迹的去除,以及为后续ICA、源定位等计算减轻负担。通过观察特征值曲线与头皮地形图,可识别伪迹成分并重建干净信号。本文结合Python与MNE工具,详细介绍了PCA在EEG预处理中的完整流程、参数选择策略及常见陷阱,适合已掌握基础滤波的脑电分析人员参考。

weixin_34288121的博客 315

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

oracle游标循环定义变量赋值,PL/SQL  循环 数组 游标的使用

1、创建存储过程create or replace proceduretest(var_name_1 in type,var_name_2 out type) as--声明变量(变量名 变量类型)begin--存储过程的执行体end test;打印出输入的时间信息E.g:create or replace proceduretest(workDate in Date) isbegindbms_ou...

weixin_39862697的博客 1202

PL/SQL基础、变量及游标

一、PL/SQL基础及变量 1、PL/SQL是一种语言,相当于把sql语句与java语言的结合运用。 2、注意写SQL语句时,它的前面最好不要有注释的语句。 3、PL/SQL由声明、执行体、异常处理三部分组成。如: SQL>DECLARE /*声明*/ v_job varchar2(20); BEGIN /*执行体*/ SELECT job INTO v_job...

lihong22的专栏 483

oracle PL/SQL 编程(变量、流程控制、游标、异常处理)

目录 1.PL/SQL 块结构 注释和标识符 2.数据类型、变量、常量 2.1基本数据类型 1.数值类型 2.字符类型 3.日期类型 4.bool类型 2.2特殊数据类型 1. %TYPE类型 2.record类型 3. %ROWTYPE 2.3定义变量和常量 1.定义变量 2.定义常量 3.流程控制语句 3.1选择语句 1.if...then 2. if.....

树叶子的博客 1795

Oracle PL/SQL开发基础(第二十六弹:游标变量)

前面介绍游标的时候,可以看到,美定义一个游标,就为其绑定一个查询语句,这种游标称为静态游标。游标变量是另一种类型的游标,在定义时并不绑定到具体的查询,而是可以打开任何类型兼容的查询,灵活性相当大。 游标变量简介

艺术就是爆炸的专栏 1003
上一篇: oracle数据库驱动表
下一篇: blog、wiki、项目管理和项目知识管理
fantasyagain
博客等级 码龄19年 18粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值