精华内容
下载资源
问答
  • Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里主要说说大家常用...

    Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。

    一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里主要说说大家常用的游标加循环的嵌套使用。

    首先先介绍循环的分类:

    (1)WHILE ... END WHILE

    (2)LOOP ... END LOOP

    (3)REPEAT ... END REPEAT

    (4)GOTO

    这里有三种标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO(不做介绍)。

    (1)WHILE ... END WHILE

    CREATE PROCEDURE p14()

    BEGIN

    DECLARE v INT;

    SET v = 0;

    WHILE v < 5 DO

    INSERT INTO t VALUES (v);

    SET v = v + 1;

    END WHILE;

    END;

    这是WHILE循环的方式。它跟IF语句相似,使用"SET v = 0;"语句使为了防止一个常见的错误,如果没有初始化,默认变量值为NULL,而NULL和任何值操作结果都为NULL。

    (2)REPEAT ... END REPEAT

    CREATE PROCEDURE p15 ()

    BEGIN

    DECLARE v INT;

    SET v = 0;

    REPEAT

    INSERT INTO t VALUES (v);

    SET v = v + 1;

    UNTIL v >= 5

    END REPEAT;

    END;

    这是REPEAT循环的例子,功能和前面WHILE循环一样。区别在于它在执行后检查结果,而WHILE则是执行前检查。类似于do while语句。注意到UNTIL语句后面没有分号,在这里可以不写分号,当然你加上额外的分号更好。

    (3)LOOP ... END LOOP

    CREATE PROCEDURE p16 ()

    BEGIN

    DECLARE v INT;

    SET v = 0;

    loop_label: LOOP

    INSERT INTO t VALUES (v);

    SET v = v + 1;

    IF v >= 5 THEN

    LEAVE loop_label;

    END IF;

    END LOOP;

    END;

    以上是LOOP循环的例子。LOOP循环不需要初始条件,这点和WHILE循环相似,同时它又和REPEAT循环一样也不需要结束条件。

    ITERATE 迭代

    如果目标是ITERATE(迭代)语句的话,就必须用到LEAVE语句

    CREATE PROCEDURE p20 ()

    BEGIN

    DECLARE v INT;

    SET v = 0;

    loop_label: LOOP

    IF v = 3 THEN

    SET v = v + 1;

    ITERATE loop_label;

    END IF;

    INSERT INTO t VALUES (v);

    SET v = v + 1;

    IF v >= 5 THEN

    LEAVE loop_label;

    END IF;

    END LOOP;

    END;

    ITERATE(迭代)语句和LEAVE语句一样也是在循环内部的循环引用, 它有点像C语言中 的“Continue”,同样它可以出现在复合语句中,引用复合语句标号,ITERATE(迭代)意思 是重新开始复合语句。

    以上是对于循环的几种情况的介绍。接着就是介绍一个带游标的例子来详细解释。

    begin

    declare p_feeCode varchar(20);

    declare p_feeName varchar(20);

    declare p_billMoney float(12);

    declare p_schemeMoney float(12);

    declare allMoney float(10);

    declare allUsedMoney float(10);

    declare p_year varchar(50);

    declare p_totalCompeleteRate float(12);

    declare done int(10);

    declare flag int(2);

    declare feeCodeCursor cursor for select feeCode from fee;//申明一个游标变量

    declare continue handler for not found set done=1;//申明循环结束的标志位

    set done=0;

    select date_format(now(),'%Y') into p_year;

    open feeCodeCursor;//打开游标

    loop_label:LOOP

    fetch feeCodeCursor into p_feeCode;//将游标插入申明的变量

    if done = 1 then

    leave loop_label;

    else

    set flag = 0;

    end if;

    set p_schemeMoney=0;

    set p_billMoney = 0;

    select feeName into p_feeName from fee where feeCode=p_feeCode;

    select sum(billMoney) into p_billMoney from bill_data where feeCode=p_feeCode and billDate like Concat(p_year, '%');

    select schemeMoney into p_schemeMoney from total_scheme where feeCode=p_feeCode and schemeDate like Concat(p_year, '%') limit 1;

    if flag = 0 then

    set done = 0;

    end if;

    if p_schemeMoney=0 then

    set p_totalCompeleteRate=-1.0;

    else

    set p_totalCompeleteRate=(1.0*p_billMoney)/p_schemeMoney;

    end if;

    insert into total_summary values(p_feeCode,p_feeName,p_year,p_billMoney,p_totalCompeleteRate);

    commit;

    end LOOP;

    close feeCodeCursor;//循环结束后需要关闭游标

    end

    以上只是一个简单的例子来说明如何使用,大家不需要关注具体业务逻辑,只需要关注的是其中标志位值的修改情况,已经循环何时离开。以及游标如何声明,如何使用,至于里面具体的操作和普通的sql语句没有太大区别。此处是用一层循环,至于复杂业务需要需要两层三层,可以继续用同样的方法继续嵌套。以下给出双层嵌套循环的,同样大家只需要关注嵌套结构即可。

    begin

    declare p_projectID varchar(20);

    declare p_projectName varchar(20);

    declare p_feeCode varchar(20);

    declare p_feeName varchar(20);

    declare p_projectSchemeMoney float(10);

    declare p_projectMoney float(10);

    declare p_billMoney float(10);

    declare p_year varchar(50);

    declare p_projectFeeCompeleteRate float(10);

    declare done1 int(10);

    declare done2 int(10);

    declare flag int(2);

    declare feeCodeCursor cursor for select feeCode from fee;

    declare continue handler for not found set done1=1;

    set done1=0;

    select date_format(now(),'%Y') into p_year;

    delete from project_fee_summary;

    open feeCodeCursor;

    repeat //第一层嵌套开始

    fetch feeCodeCursor into p_feeCode;

    select feeName into p_feeName from fee where feeCode=p_feeCode;

    if not done1 then

    begin

    declare projectIDCursor cursor for select projectID from project;

    declare continue handler for not found set done2 = 1;

    set done2=0;

    open projectIDCursor;

    loop_label:LOOP//第二层嵌套开始

    fetch projectIDCursor into p_projectID;

    select projectName into p_projectName from project where projectID=p_projectID;

    if done2 = 1 then

    leave loop_label;

    else

    set flag = 0;

    end if;

    if not done2 then

    set p_projectSchemeMoney=0;

    select sum(billMoney) into p_billMoney from bill_data where feeCode=p_feeCode and projectID=p_projectID and billDate like Concat(p_year, '%');

    select projectSchemeMoney into p_projectSchemeMoney from project_scheme where feeCode=p_feeCode and projectID=p_projectID;

    if flag = 0 then

    set done2 = 0;

    end if;

    if p_projectSchemeMoney=0 then

    set p_projectFeeCompeleteRate=-1;

    else

    set p_projectFeeCompeleteRate=(1.0*p_billMoney)/p_projectSchemeMoney;

    end if;

    insert into project_fee_summary values(p_feeCode,p_projectID,p_projectName,p_feeName,p_year,p_billMoney,p_projectFeeCompeleteRate,p_projectFeeCompeleteRate);

    end if;

    end LOOP;

    select sum(billMoney) into p_projectMoney from bill_data where feeCode=p_feeCode and billDate like Concat(p_year, '%');

    set p_projectFeeCompeleteRate=(1.0*p_projectMoney)/p_projectSchemeMoney;

    insert into project_fee_summary values(p_feeCode,"total","total",p_feeName,p_year,p_projectMoney,p_projectFeeCompeleteRate,p_projectFeeCompeleteRate);

    close projectIDCursor;

    end;

    end if;

    until done1

    end repeat;

    close feeCodeCursor;

    end

    展开全文
  • plsql 存储过程游标

    2020-12-20 11:16:43
    PLSQLPL/SQL块PL/SQL块是在SQL语言之上发展起来的一应用,可以集中的处理各种复杂的SQL操作。组成:DECLARE:声明部分BEGIN编写趁许的主题EXCEPTION捕获异常END ;/看一个简单的PL/SQL块DECLAREiNUMB...文章余二五...

    PLSQL

    PL/SQL块

    PL/SQL块是在SQL语言之上发展起来的一种应用,可以集中的处理各种复杂的SQL操作。

    组成:

    DECLARE:

    声明部分

    BEGIN

    编写趁许的主题

    EXCEPTION

    捕获异常

    END ;

    /

    看一个简单的PL/SQL块

    DECLARE

    i NUMB...

    文章

    余二五

    2017-11-22

    892浏览量

    动态sql 和静态sql 下篇

    1、批量绑定让oracle 在对一组值进行sql操作时绑定一个变量,这一组数据可以是任何的plsql的聚合类型(联合数组,内嵌表,可变数组),集合元素必须是sql的数据类型,比如char date mumber。有三个句法支持动态批量绑定,EXECUTE IMMEDIATE , FETCH , F...

    文章

    长烟慢慢

    2012-04-11

    830浏览量

    PLSQL子程序即PLSQL块

    PLSQL重头戏来了,前期介绍的四种变量,游标,集合,都是为后续的子程序服务的,子程序包括两类一个是函数,一个是存储过程,

    1)建立和调用过程

    2)建立和调用函数

    3)管理PLSQL子程序

    sqlplus中调用过程有两种一种call out_time() 而是exec out_time

    【过程】

    ...

    文章

    科技小能手

    2017-11-12

    943浏览量

    阿里云爆款特惠专场,精选爆款产品低至0.95折!

    爆款ECS云服务器8.1元/月起,云数据库低至1.5折,限时抢购!

    广告

    PL/SQL笔记

    plsql :procedure language

    sql :structure query language

    以下为一个简单的plsql:

    declare

    v_i number := 0   注:赋值符号为:= 或default

    v...

    文章

    技术小甜

    2017-11-24

    612浏览量

    动态SQL语句

    动态SQL语句不仅是指SQL语句是动态拼接而成的,更主要的是SQL语句所使用的对象也是在运行时期才能创建的。

    动态SQL语句基础

    create or replace function get_tablecount(table_name in varchar2)

    return pls_integ...

    文章

    技术小胖子

    2017-11-22

    542浏览量

    PLSQL Developer 出现ORU-10027: buffer overflow, limit of 10000 bytes

    错误提示:

    ERROR at line 1:

    ORA-20000: ORU-10027: buffer overflow, limit of 1000000 bytes

    ORA-06512: at “SYS.DBMS_OUTPUT”, line 32

    ORA-06512: at “SYS.DBM...

    文章

    zting科技

    2017-09-13

    1295浏览量

    对比 PL/SQL profiler 剖析结果

    使用PL/SQL PROFILER 剖析PL/SQL代码是快速定位PL/SQL代码段最有效的方法。在上一篇文章使用PL/SQL PROFILER 定位 PL/SQL 瓶颈代码中描述了安装PROFILER,并给出了剖析的示例。本文参照了Tom大师的代码来对比剖析前后的性能并附上其代码。

    ...

    文章

    leshami

    2013-09-27

    639浏览量

    PL/SQL异常处理(原创)

    Exception概述

    Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理。ORACLE异常分为两种类型:系统异常、自定义异常。其中系统异...

    文章

    ghost丶桃子

    2016-05-24

    1595浏览量

    PL/SQL动态SQL(原创)

    概述

    使用动态SQL是在编写PL/SQL过程时经常使用的方法之一。很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行SQL查询语句,对于这种情况需要使用动态SQL来完成。再比如,对于分页的情况,对于不同的表,必定存在不同的字段,因此使用静态SQL则只能针对某几个特定的表来形成分...

    文章

    ghost丶桃子

    2016-05-24

    1489浏览量

    PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用

    背景

    《PostgreSQL 覆盖 Oracle 18c 重大新特性》

    Oracle 19c 新特性摘自盖老师《Oracle 19c 新特性及官方文档抢鲜下载》文章,其中有一些特性在PostgreSQL中很早以前已经支持。本文旨在介绍PG如何使用这些特性。

    1.Data Guard 备库DML...

    文章

    德哥

    2020-09-12

    357浏览量

    PostgreSQL , EDB EPAS PPAS(兼容Oracle) , Oracle 对比(兼容性、特性优劣势) - 企业去O,去IOE

    标签

    PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点

    背景

    EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发...

    文章

    德哥

    2020-02-25

    425浏览量

    PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用

    标签

    PostgreSQL , Oracle 兼容性 , Oracle 19c

    背景

    《PostgreSQL 覆盖 Oracle 18c 重大新特性》

    Oracle 19c 新特性摘自盖老师《Oracle 19c 新特性及官方文档抢鲜下载》文章,其中有一些特性在Postg...

    文章

    德哥

    2020-02-25

    130浏览量

    《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.5 执行计划中其他信息的含义

    2.5 执行计划中其他信息的含义

    通过DBMS_XPLAN输出执行计划,除了计划本身外,还可以获得一些其他信息帮助我们进一步分析执行计划及语句性能。2.5.1 查询块和对象别名在使用DBMS_XPLAN显示执行计划时,选择'ADVANCED'预定义格式作为参数或者加入'ALIAS'控制字符串,可以...

    文章

    华章计算机

    2017-08-01

    1282浏览量

    如何解决Ora-04031错误(转)

    诊断并解决ORA-04031 错误

    当我们在共享池中试图分配大片的连续内存失败的时候,Oracle首先清除池中当前没使用的所有对象,使空闲内存块合并。如果仍然没有足够大单个的大块内存满足请求,就会产生ORA-04031 错误。

    当这个错误出现的时候你得到的错误解释信息类似如下:  04...

    文章

    developerguy

    2015-09-18

    797浏览量

    PL/SQL --> 动态SQL的常见错误

    --============================

    -- PL/SQL --> 动态SQL的常见错误

    --============================

    动态SQL在使用时,有很多需要注意的地方,如动态SQL语句结尾处不能使用分号(;),而动态PL/SQL结尾...

    文章

    leshami

    2011-01-05

    932浏览量

    PLSQL 之类型、变量和结构

    1、类型

    在《.Net程序员学用Oracle系列(5):三大数据类型》一文中详细地讲述了 Oracle 的基本数据类型,文中还提到,除基本数据类型之外,Oracle 还在语法上支持一些非固有数值类型。

    事实上,Oracle 在语法上支持的数据类型远不止于此,Oracle 还支持一些复杂而强大的数据...

    文章

    技术小阿哥

    2017-11-05

    812浏览量

    PLSQL 之类型、变量和结构

    1、类型

    在《.Net程序员学用Oracle系列(5):三大数据类型》一文中详细地讲述了 Oracle 的基本数据类型,文中还提到,除基本数据类型之外,Oracle 还在语法上支持一些非固有数值类型。

    事实上,Oracle 在语法上支持的数据类型远不止于此,Oracle 还支持一些复杂而强大的数据...

    文章

    科技探索者

    2017-11-14

    790浏览量

    PL/SQL --> 语言基础

    --=====================

    -- PL/SQL --> 语言基础

    --=====================

    PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语

    言...

    文章

    leshami

    2010-12-08

    828浏览量

    PL/SQL语言基础(原创)

    PL/SQL概述

    PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语言的特征,如循环、条件分支等。同时也具有对象编程语言的特征,如重载、继承等。PL/SQL程序语言的组成主要由块组成一个块由三个基本部分组成...

    文章

    ghost丶桃子

    2016-05-24

    1176浏览量

    PL/SQL6——异常处理(Exception)

    Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引

    入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理。

    一、异常的类型

    ORACLE异常分为两种类型:系统异常、自定义异常...

    文章

    长烟慢慢

    2012-04-18

    677浏览量

    OTL技术应用

    什么是OTL:OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示:

    数据库

    访问接口

    支持版本

    Oracle

    OCI

    OCI7、O...

    文章

    skyme

    2016-04-25

    1660浏览量

    OTL技术应用

    什么是OTL:OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示:

    数据库

    访问接口

    支持版本

    Oracle

    OCI

    ...

    文章

    skyme张

    2010-11-08

    672浏览量

    PL/SQL1——语言基础

    原文转自  一沙弥的世界  的博客

    PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语

    言的特征,如循环、条件分支等。同时也具有对象编程语言的特征,如重载、继承等。

    一、PL/SQL程序语言的组成

    ...

    文章

    长烟慢慢

    2012-04-14

    689浏览量

    展开全文
  • MySQL存储过程游标

    2021-04-20 02:42:14
    上个星期风风火火地学了下存储过程游标,发现有一些细节容易忽略,在此做出一些标注,也希望能够给学习的人一些指导。我所要做的是将连续地址进行拆分,比如address“环庆中路321弄1-30号”,目标是将其拆成“环庆...

    上个星期风风火火地学了下存储过程及游标,发现有一些细节容易忽略,在此做出一些标注,也希望能够给学习的人一些指导。

    我所要做的是将连续地址进行拆分,比如address“环庆中路321弄1-30号”,目标是将其拆成“环庆中路321弄1号”,“环庆中路321弄2号”,“环庆中路321弄3号”等等。首先我将地址拆分为road“环庆中路321弄”,front“1”,behind“30”几个片段。然后建立一张新表,进行循环插入,过程如下。

    #原表如下

    #id road front behind isodd

    #1 爱特路185弄 1 30 NULL

    #2 长宁路 255 259 Y

    #创建循环插入的表

    drop table if exists test;

    CREATE table test(id int,address varchar(255));

    #创建存储过程

    DROP PROCEDURE IF EXISTS proc;

    DELIMITER //

    CREATE PROCEDURE proc()

    #declare必须放在begin和end之间

    BEGIN

    #内置循环标签

    DECLARE inid INT DEFAULT 1;

    #外部循环标签

    DECLARE iid INT DEFAULT 0;

    #isodd为是否单数,“是”为“Y”,"否"为“NULL”,定义变量

    DECLARE rid VARCHAR(255);

    DECLARE rroad VARCHAR(255);

    DECLARE rfront INT;

    DECLARE rbehind INT;

    DECLARE risodd varchar(255);

    #定义越界标签,默认为1

    DECLARE done INT DEFAULT 1;

    #定义游标

    DECLARE getinfo CURSOR FOR SELECT id,road,front,behind,isoddFROM test1;

    #定义越界,设置标签为0

    DECLARE exit HANDLER FOR NOT FOUND SET done = 0;

    #打开游标

    OPEN getinfo;

    #当越界标签为默认1时一直循环,或者可以利用repeat先循环再判断,两种循环没有多大差别

    WHILE done = 1 DO

    #将游标获取的值放进定义的变量当中

    FETCH getinfo INTO rid,rroad,rfront,rbehind,risodd;

    #外部循环每次增加,会把front赋值给iid,利用iid进行内部循环

    SET inid =inid +1;

    SELECT rfront INTO iid;

    #当iid

    WHILE iid<=rbehind DO

    INSERT INTO test SELECT rid,concat(rroad,iid,"号");

    #如果isodd为空,则内部循环每次加1,否则加2

    IF risodd IS NULL THEN

    SET iid =iid +1;

    ELSE

    SET iid =iid +2;

    #结束if判断

    END IF;

    #结束内部循环

    END WHILE;

    #结束外部循环

    END WHILE;

    #关闭游标

    CLOSE getinfo;

    #结束存储过程

    END//

    delimiter ;

    CALL proc();

    展开全文
  • -- 使用游标的四方法,感觉for循环的最简单create or replace procedure exportData isbegindeclarecursor depart isselect * from t_department;v_id number;v_name varchar2(500);v_parentId number;begin/*用...

    -- 使用游标的四种方法,感觉for循环的最简单

    create or replace procedure exportData is

    begin

    declare

    cursor depart is

    select * from t_department;

    v_id number;

    v_name varchar2(500);

    v_parentId number;

    begin

    /*用while 循环,将游标值放入变量中

    之前要声明变量

    open depart;

    fetch depart

    into v_id, v_name, v_parentId;

    while depart%found loop

    insert into t_depart values (v_id, v_name, v_parentId);

    fetch depart

    into v_id, v_name, v_parentId;

    end loop;

    close depart;*/

    /*

    for循环比较简单,比while少了很多行,不用判断指针是否到末尾了

    for dep in depart

    loop

    insert into t_depart values(dep.id,dep.name,dep.parentId);

    end loop; */

    /* if…then的形式,和while相似

    open depart;

    fetch depart

    into v_id, v_name, v_parentId;

    loop

    if depart%found then

    insert into t_depart values (v_id, v_name, v_parentId);

    fetch depart

    into v_id, v_name, v_parentId;

    else

    exit;

    end if;

    end loop;

    close depart;

    */

    open depart;

    loop

    ---exit when 的形式

    fetch depart

    into v_id, v_name, v_parentId;

    exit when depart%notfound;

    insert into t_depart values (v_id, v_name, v_parentId);

    end loop;

    close depart;

    end;

    end exportData;

    展开全文
  • SQL Server技术问题之游标优缺点分类:MS SQL SERVER 支持三种类型游标:Transact_SQL 游标,API 服务器游标和客户游标。(1) Transact_SQL 游标Transact_SQL 游标是由DECLARE CURSOR 语法定义、主要用在Transact_...
  • Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里主要说说大家常用...
  • 有俩方法:一是声明系统游标,一是声明自定义游标,然后后面操作一样,参数类型为in out 或outSYS_REFCURSOR 型游标,该游标是Oracle 以预先定义的游标,可作出参数进行传递(1)声明个人系统游标.(推荐)create or ...
  • 第二十三章 使用存储过程MySQL5 中添加了存储过程的支持。大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成存储过程简单来说,就是为以后的使用而...
  • MySQL5中添加了存储过程的支持。大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句...
  • 存储过程的优点:1、存储过程只在创造时进行编译,以后每次执行存储过程都不需要重新编译,一般的SQL语句执行一次就要编译一次,所以使用存储过程可以提高数据库执行速度。2、当对数据库进行...
  • 正是因为存储过程没有返回值,所以需要在存储过程名中指定参数的类型,是IN、OUT、INOUT中的一; 而对于函数,虽然没有显式地提及,但其参数类型只能是IN。 3. 代码块中有 routine_body,指的就是存储过程或函数中...
  • 存储过程游标解析:1. 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义,从表中检索出结果集,从中每次指向一条记录进行交互的机制。由于游标指示结果集中的当前位置 ,就像计算机屏幕上的光标指示当前...
  • 【以下为转载】 主要有以下五循环:Exit When、Loop、While、For(普通循环)、For(游标循环),下面举例一一说明(均为存储过程)。 1、Exit When循环: create or replace procedure proc_test_exit_when is i ...
  • Java面试题-数据库-索引存储过程游标视图等等 Java面试题-数据库-索引存储过程游标视图等等
  • MySQL利用存储过程清除所有表中的所有记录MySQL利用存储过程清除所有表中的所有记录在使用MySQL过程中,难免会出现一些测试数据,然而这些测试数据在真正部署运行的时候,通常要被清楚掉,并且自增长的字段要回复...
  • 留印:http://blog.sina.com.cn/s/articlelist_1254871964_5_1.html第二十三章 使用存储过程MySQL5中添加了存储过程的支持。大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个...
  • 9i以后引入了bind peeking绑定变量窥视特性,但该特性常有帮当忙之嫌,所以有了11g的自适应游标特性。...下面我们列举几种可以达到清除游标缓存的方法,权作抛砖引玉:1.alter system flush shared_pool;/...
  • 存储过程的参数 ---IN 定义一个输入参数变量,用于传递参数给存储过程 --OUT 定义一个输出参数变量,用于从存储过程获取数据 ---IN OUT 定义一个输入、输出参数变量,兼有以上两者的功能 --这三参数只能说明类型,...
  • MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下点关于自己的理解。 有数据缓冲的思想:游标的设计是一数据缓冲区的思想,用来存放SQL语句执行的结果。 先有数据基础:游标是...
  • 在 SQL 过程中,游标除了迭代结果集中的行,还可以将结果集返回给调用程序或其他过程 •WITHOUT RETURN/WITH return:选项指定游标的结果表是否用于作为从一个过程中返回的结果集。 •WITH RETURN TO CALLER:选项...
  • mysql存储过程 limit

    2021-01-19 03:20:02
    SQL分页查询代码SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活...
  • 1、静态游标1。1显式游标定义格式:CURSOR 游标名 ( 参数 )ISSelect 语句 FOR UPDATE [OF [schema。]table。column[,[schema。]table。column]。。[nowait]例子1 :无参数,打开关闭游标set serveroutput on size ...
  • 这里主要对比以下三种格式的游标循环:1.单条处理open 游标;LOOPFETCH 游标 INTO 变量;EXIT WHEN 条件;END LOOP;CLOSE 游标;2.批量处理open 游标;FETCH 游标 BULK COLLECT INTO ...以上为工作中常见的几种游标处理...
  • 1 DB2编程1.1 建存储过程时CREATE 后一定不要用TAB键 31.2 使用临时表 31.3 从数据表中取指定前条记录 31.4 游标的使用 4注意commit和rollback 4游标的两定义方式 4修改游标的当前记录的方法 51.5 类似DECODE的...
  • 存储过程之多项结果集游标处理

    千次阅读 2012-12-12 11:26:59
    mysql 存储过程 ,游标 (2012-06-27 14:15:30) 转载▼ 标签: 宋体 存储过程 游标 结果集 变量 杂谈 分类:js ...以下的文章主要介绍的是MySQL游标的使用笔记,
  • 1.1,Oracle存储过程简介:存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的...
  • oracle的存储过程格式

    2021-05-03 05:50:52
    在这里说一条使用存储过程很重要的理由:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。Oracle存储过程定义和优点...
  • 视图、储存过程游标和触发器视图存储过程为什么要使用存储过程使用存储过程执行存储过程创建存储过程删除存储过程使用参数建立智能存储过程检查存储过程游标使用游标使用游标数据触发器 MySQL 5添加了对视图、存储...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,540
精华内容 18,616
关键字:

存储过程游标几种类型