关于mysql中游标与oracle中游标的使用方式 5C
  declare ICOUNT1  int(8);
  declare M_SQL    varchar(3000);
  declare M_CURSOR cursor for M_sql;
  set M_SQL = concat('INSERT INTO T_LIST_JNKTCSQD  (LOGIN_ID,LOCAL_NET_NAME,
         AREA_NAME,
         EXCH_NAME,
         WORK_AREA_NAME,
         CO_NBR,。。。。
        set M_CURSOR = open M_CURSOR;
    DBMS_SQL.PARSE(M_CURSOR, M_SQL, DBMS_SQL.V7);
    set ICOUNT1 = DBMS_SQL.EXECUTE(M_CURSOR);
    DBMS_SQL.CLOSE_CURSOR(M_CURSOR);

如上:这是一段从oracle中复制下来的存储,目前需要在mysql中运行,需要哪些地方改正,并请解释!

5个回答

原理应该是一样的,这两个我现在都没用

你这个不是Oracle存过上拷过来的吧?我写这么久存过,也没见过这种写法,mysql上我见过set的写法,但是游标里面直接写DML语句,这种再Oracle里面好像不能操作吧。另外,你这个后半截的sql最好是贴全,不然不便于帮你看问题。

看不太懂oracle的代码,MySQL最简单的建表语句是这样,CREATE TABLE t1(
id int not null,
name char(20)
);
插入数据是insert into;网上有很多例子,很简单的

我觉得用法还是一样的吧,不需要改吧

破、破、破、欧派、欧派、破、欧派、破、破、

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Oracle中游标的使用
1;字符串变量例子2 给你一个完整的例子:    DECLARE          TYPE   EmpCurTyp   IS   REF   CURSOR;              --定义游标类型typeof        emp_cv       EmpCurTyp;          emp_rec     emp%ROWTYPE;                           ...
oracle中游标的使用
游标的类型:隐式游标:在PL/SQL程序中执行DML sql语言中自动创建的隐式游标,名字固定叫做sql 显式游标:处理返回多行的数据。游标使用过程: 显示游标的使用1.使用步骤 (1)定义 (2)打开 (3)使用 (4)关闭 程序显示: cur%found – 找到记录 cur%notfound cur%isopen cur%rowcount 小练习 –1.
MySql中游标的定义与使用方式
创建游标 首先在MySql中创建一张数据表: CREATE TABLE IF NOT EXISTS `store` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `count` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGI
ORACLE中游标的使用(二)
这里主要介绍游标 与 几种循环方法的使用,循环包括WHILE 和 FOR作为判断循环的条件,循环体都是使用LOOP…..END LOOP。作为退出循环的条件还有一个就是 EXIT WHEN 条件,具体看下面的例子:一:使用EXIT WHEN 条件 退出循环DECLARE CURSOR C_EMP IS SELECT EMPID,EMPNAME,EMPTELEP FROM T_EMP;
oracle中游标的使用(一)
一 .使用游标的四个步骤: 定义游标 CURSOR <游标名称> IS 二 游标的属性 %NOTFOUND 如果取出游标失败,也就是FETCH 语句失败,则该属性是 true,否则为 false %FOUND 如果取出游标成功,也就是FETCH语句成功,该属性为 true,否则为 false ROWCOUNT 返回游标当前行的行数 ISOPEN 如果游标是开着的,则返回
mysql中游标的使用学习笔记
游标详解 1.游标是啥玩意? 简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行。 2.怎么使用游标? //1.声明/定义一个游标 declare 声明;declare 游标名 cursor for select_statement; //2.打开一个游标 open 打开;ope...
mysql中游标的运用
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制;游标充当指针的作用;尽管游标能遍历结果中的所有行,但他一次只指向一行。
oracle中游标的学习
游标是构建在PL/SQL中的,因为在PL/SQL中的select语句只能返回一行或没有返回值.想要获得多行记录,就要使用游标. 1. 隐式游标 在PL/SQL中为所有SQL数据操纵语句(包括返回一行的select)隐式声明游标,称为隐式游标的原因是用户不能直接命名和控制此类游标.当用户在PL/SQL中使用数据操纵语言(DML)时,Oracle预先定义一个名为SQL的隐式游标. 隐式游标的...
oracle 中游标的用法
学习游标的用法!包含一些资料和代码!!对于学习者很有帮助的!!
关于Sybase中游标的使用
刚刚用sybase,有点问题想请教rnCREATE TABLE dbo.TestTable rn(rn name varchar(64) NULL,rn sex varchar(64) NULLrn)rn这是表结构rnrndeclare @name varchar(64)rnrndeclare cursor_name cursor for select name from testtable rnopen cursor_name rnfetch cursor_name into @name rnwhile (@@Sqlstatus=0) rnbegin rn print @name rnfetch cursor_name into @name rnend rnClose cursor_name rndeallocate cursor cursor_name rnrn想通过游标打印出namern但不行,报错:rn1 4 DECLARE CURSOR must be the only statement in a query batch.rn1 7 Global variables not allowed as defaults.
oracle存储过程中游标的使用
小弟我写了一个存储过程,先要将一些数据批量插入到一张表里,然后用游标去表里一个一个的数据去操作。rn但现在遇到个问题:rn我将游标定在create or replace procedure( )is后面,将插入语句写在begin和end procedure里面,运行会出现死循环。rn将游标定义在begin和end procedure里,同时在insert into 语句后面,但运行会报错。rn不知道该怎么解决,是不是要先close游标,在需要使用的时候open游标呢?rn请高手指教下!
pb中游标的使用
我编写的游标程序,只能读出一条记录,但应读出12条记录rndate ld_rqp,ld_rq2rndeclare lcur_phlyb cursor forrn select 部门编号,原料代码,sum(本日内购收入) as 本月内购收入,sum(本日外购收入) as 本月外购收入,sum(本日用量) as 本月用量 rn from cj_phrbrn where 日期 between :ld_rq1 and :ld_rq2 rn group by 部门编号,原料代码rn using ltr_phlyb;rn rn open lcur_phlyb;rn那位大虾帮忙看看
sqlserver中游标的使用
select * into #strSplit from dbo.Fun_SplitStr(@fsqlstr,'|')  --把字符串参数按'|'分隔,存进临时表     --游标遍历结果集的result列数值,并且赋值给fcode,显示,先把字符串分为表名,列名 declare MyCur cursor for select result from #strSplit --定义游标,对临
oracle数据库中游标的使用
--游标,查询并打印一个的姓名和薪水 /*1.光标的属性 %found,%notfound */ declare --定义一个光标 cursor cemp is select ename,sal from emp; --为光标定义对应变量 pename emp.ename%type; psal emp.sal%ty
oracle函数中游标的使用
function test(in_type in varchar2) return varchar2 is cursor v_rules is select s.id,s.name,s.no from student s; v_rule v_rules%rowtype; v_id varchar2(16); v_name varchar2(4000); begin ...
DB2中游标的使用
在金融行业,如银行中,相当大一部分用的数据库是DB2,因此在做后台数据处理时,复杂逻辑,就要用到游标,好好研究下,对你的提升有很大的帮助。
sql中游标的使用
sql中将查询到的结果集进行循环,然后取出每条数据中指定的字段,赋值给指定的变量
SP中游标的使用
游标的使用格式: DELCARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,...FROM 表名 WHERE... OPEN 游标名称 FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,... WHILE @@FETCH_STATUS = 0 BEGIN SQL语句执行过程 FETCH NEXT FROM 游标名称 INTO 变...
sqlite.net 中游标的使用
我用sqlite.net遍历每条记录,然后更新每条记录。rn用rnrn"select * from descriptors limit 1 offset " + i"rni在循环中自增。rnrn一开始很快,但到8w条以后会非常慢。有没有什么更快的方式?例如游标一样的东西在.net中使用
mysql中游标的使用案例详解(学习笔记)
1.游标是啥玩意? 简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行。我给大家准备一张图: 2.怎么使用游标? //1.声明/定义一个游标 declare 声明;declare 游标名 cursor for select_statement; //2.打开一个游标 open 打开
存储过程(1)mysql中游标的使用
CREATE PROCEDURE `test`.`new_procedure` () BEGIN -- 需要定义接收游标数据的变量    DECLARE a CHAR(16);   -- 游标   DECLARE cur CURSOR FOR SELECT i FROM test.t;   -- 遍历数据结束标志   DECLARE done INT DEFAULT
Mysql 存储过程中游标的使用问题
[code=SQL]rn#围栏车左下纵坐标rndeclare longLow DECIMAL;rn#围栏车左下横坐标rndeclare latLow DECIMAL;rn#围栏车左上纵坐标rndeclare longHigh DECIMAL;rn#围栏车左上横坐标rndeclare latHigh DECIMAL;rn#外循环计数器rndeclare isSuccuss int DEFAULT 0;rn#内循环计数器rndeclare isSuccussIn int DEFAULT 0;rn#计数器rndeclare counts int default 0;rnDECLARE cur_Enclosure_ResultSet CURSOR FOR select CAST(e.longLow as DECIMAL(3,7)),CAST(e.latLow as decimal(2,7)),CAST(e.longHigh as decimal(3,7)),cast(e.latHigh as decimal(2,7)),e.driveInOut,e.carTag from enclosure as e where e.carCode = carCode; /*carCode 过程的 in 参数*/rn#经度rn#装换为小数类型rnset @longitude_d = cast(longitude as DECIMAL(3,7));rn#纬度rn#装换为小数类型rnset @latitude_d = cast(latitude as decimal(2,7));rnOPEN cur_Enclosure_ResultSet;rnif cur_Enclosure_ResultSet <> null thenrnwhile counts<2 dorn FETCH from cur_Enclosure_ResultSet INTO longLow,latLow,longHigh,latHigh,driveInOut,enclosureCarTag;rn while isSuccussIn != 0 DOrn IF (driverInOut is NOT NULL) AND (driveInOut != 0) thenrn if (@longitude_d-longLow>0) and (@longitude_d-longHigh<0) and (@latitude_d-latLow>0) and (@latitude_d-latHigh<0) thenrn set alarmType = '围栏报警';rn set alarmCarTag = enclosureCarTag;rn insert into alarmHistory values(alarmType,alarmCarTag,carCode,inTime);rn set counts = counts + 1;rn set isSuccussIn = 0;rn end if;rn end if;rnend while;rn while isSuccuss !=0 dorn if(driverInOut is NOT NULL) AND (driveInOut = 0)thenrn if (@longitude_d-longLow<0) or (@longitude_d-longHigh>0) or (@latitude_d-latLow<0) or (@latitude_d-latHigh>0) thenrn set alarmType = '围栏报警';rn set alarmCarTag = enclosureCarTag;rn insert into alarmHistory values(alarmType,alarmCarTag,carCode,inTime);rn set counts = counts + 1;rn set isSuccuss = 0 ;rn end if;rn end if ;rnend while;rnend while;rnclose cur_Enclosure_ResultSet ;rnend if ;[/code]rnrn现在的问题是我call的时候老是报 No data to FETCH 的出错rn我单独测试了下面这个查询,有结果的rnselect CAST(e.longLow as DECIMAL(3,7)),CAST(e.latLow as decimal(2,7)),CAST(e.longHigh as decimal(3,7)),cast(e.latHigh as decimal(2,7)),e.driveInOut,e.carTag from enclosure as e where e.carCode = carCode;rn不知道问题出在哪里了,请各位大侠帮忙啦!rn还有就是我如果没有查询到数据这样写会不会报错呀? 是不是要在 Fetch 之前截断这个取值? 语句怎么写
关于mysql 5中游标的问题
对mysql不是很熟,我想知道在mysql 5.0版本中的游标,是否可以动态创建游标?比如在存储过程中:rn先声明一个cursor--rndeclare cur cursor;rn然后在sp执行时再指定这个cursor具体的查询语句,再open,再fetch...rn我的目的是,可以在执行时动态构造sql语句,然后赋给这个游标进行查询...rn记得好像postgres可以的,mysql可以么?如果可以是否可以给出一个sp的例子?多谢.rn
嵌入式SQL中游标的使用
背景:开发中的一个信息管理系统,采用VC6+SQL2000rnrn问题:欲通过使用游标,读取数据库中的记录集,赋值给主程序中的多个变量,不知道如何实现?(读取的记录集是表中的部分记录)rnrn部分源代码如下:rn//这是未使用游标情况,读取数据库时弹出“内存不足”对话框,rn//估计是记录集与记录冲突,然后考虑使用游标,但不知怎么实现rn CRecordset rs(&db);rn CString strDep, strJob, strEdulevel, strSex; //主变量rn rs.Open(CRecordset::forwardOnly,rn "select * from 员工 where 员工号='" + m_strID + "'");rn if(!rs.IsEOF()) //非空则获取员工信息rn rn rs.GetFieldValue("姓名", m_strName); //名字rn rs.GetFieldValue("性别", strSex); //性别rn rs.GetFieldValue("生日", m_strBirthday); //生日rn rs.GetFieldValue("文化程度", strEdulevel); //受教育水平rn rs.GetFieldValue("专业技能", m_strSpecialty); //专业rn rs.GetFieldValue("住址", m_strAddress); //住址rn rs.GetFieldValue("电话", m_strTel); //电话rn rs.GetFieldValue("电邮", m_strEmail); //Emailrn rs.GetFieldValue("职位号", strJob); //职务代码rn rs.GetFieldValue("所在部门", strDep); //部门编号rn rs.GetFieldValue("备注", m_strMemo); //备注rn m_strBirthday = m_strBirthday.Left(10); //取日期部分rn rs.Close();rn rnrn另外一个问题是VC程序在操纵数据库时弹出“无效的游标状态”,查不出什么原因?
pl/sql中游标的使用
假设有一个employee表,编写一个PL/SQL 程序块,以提升两个资格最老的"职员"为 "高级职员";(用到游标,Thank you)
关于mysql存储过程中游标的问题
prepare stmt from 'declare cur_person_key cursor for rn select person_key from manuscript_authors rn where manu_id=''?''rn order by author_order';rn execute stmt using @manu_in_ready;rn rn open cur_person_key;rn提示Undefined CURSOR: cur_person_key;请问各位哪里出错了啊?
PL/SQL中游标的使用
1:游标简介 保存语句执行结果存储区域的指针 用于获取执行结果 2:游标分类 隐式游标:隐式定义的游标 显式游标:显式定义的游标 <2.1>:隐式游标概念 不需要显式定义即可使用的游标 PL/SQL环境进行声明和管理 又被称为SQL游标 专门处理SELECT…INTO, INSERT, DELETE, UPDATE语句 <2.2>:隐式游
SQL SERVER 中游标的使用
SQL SERVER 数据库中游标的定义,具体的代码实现。
pb中游标的声名和使用?
关于存储过程中游标的值
我现在写一个存储过程,实现数据的批量处理,代码如下:rn--构建数组rncreate or replace type ACTIONTYPE_VARCHAR2 as table of varchar2(1000); rncreate or replace type ENTITYID_VARCHAR2 as table of varchar2(1000); rncreate or replace type VOUTYPEID_VARCHAR2 as table of varchar2(1000); rn--create or replace type WFID_VARCHAR2 as table of varchar2(1000); rn--create or replace type CURRENTNODE_VARCHAR2 as table of varchar2(1000); rncreate or replace type CURRENTSTATUS_NUMBER as table of number(10);rncreate or replace type NEXTNODE_VARCHAR2 as table of varchar2(1000); rncreate or replace type NEXTSTATUS_NUMBER as table of number(10);rncreate or replace type IS_UNDO_NUMBER as table of number(10);rncreate or replace type OPERUSER_VARCHAR2 as table of varchar2(1000); rn--create or replace type OPERDATE_DATE as table of DATE; rncreate or replace type INITMONEY_NUMBER as table of number(10);rncreate or replace type RESULTMONEY_NUMBER as table of number(10);rncreate or replace type TOLLYFLAG_NUMBER as table of number(10); rncreate or replace type AUTOAUDITFLAG_NUMBER as table of number(10);rncreate or replace type TIMESTAMP_VARCHAR2 as table of varchar2(1000);rn--create or replace type REMARK_VARCHAR2 as table of varchar2(1000);rncreate or replace procedure drivenWorkFlow(rnPARAMS_ACTIONTYPE_VARCHAR2 in ACTIONTYPE_VARCHAR2,rnPARAMS_ENTITYID_VARCHAR2 in ENTITYID_VARCHAR2,rnPARAMS_VOUTYPEID_VARCHAR2 in VOUTYPEID_VARCHAR2,rn--PARAMS_WFID_VARCHAR2 in WFID_VARCHAR2,rn--PARAMS_CURRENTNODE_VARCHAR2 in CURRENTNODE_VARCHAR2,rnPARAMS_CURRENTSTATUS_NUMBER in CURRENTSTATUS_NUMBER, rnPARAMS_NEXTNODE_VARCHAR2 in NEXTNODE_VARCHAR2, rnPARAMS_NEXTSTATUS_NUMBER in NEXTSTATUS_NUMBER,rnPARAMS_IS_UNDO_NUMBER in IS_UNDO_NUMBER,rnPARAMS_OPERUSER_VARCHAR2 in OPERUSER_VARCHAR2,rn--PARAMS_OPERDATE_DATE in OPERDATE_DATE,rnPARAMS_INITMONEY_NUMBER in INITMONEY_NUMBER,rnPARAMS_RESULTMONEY_NUMBER in RESULTMONEY_NUMBER,rnPARAMS_TOLLYFLAG_NUMBER in TOLLYFLAG_NUMBER,rnPARAMS_AUTOAUDITFLAG_NUMBER in AUTOAUDITFLAG_NUMBER,rnWFID_VARCHAR2 in varchar2,rnCURRENTNODE_VARCHAR2 in varchar2,rnPARAMS_TIMESTAMP_VARCHAR2 in TIMESTAMP_VARCHAR2,rn--PARAMS_REMARK_VARCHAR2 in REMARK_VARCHAR2 rno_n_ret OUT varchar2 rn)rnis rn var_nextnode varchar2(100);rn var_test varchar2(100);rn var_curstatus number; rn var_nextstatus number;rn var_nextnodeid varchar2(100);rn var_nextnodeidcur varchar2(100);rn var_nodetype varchar2(40);rn var_count number;rn var_cur_loop_count number;rn cursor cur1 isrn select NEXTNODEID from t_wfnodeconditions where WFID=WFID_VARCHAR2 and NODEID=CURRENTNODE_VARCHAR2;rn cursor cur2 isrn select to_char(operdate,'yyyy-mm-dd hh24:mi:ss') from t_wfcurrenttasks where WFID=WFID_VARCHAR2;rn rnbeginrn--判断nextnode数量rn rnselect count(*) into var_count from t_wfnodeconditions where WFID=WFID_VARCHAR2 and NODEID=CURRENTNODE_VARCHAR2;rn for i in 1..PARAMS_CURRENTSTATUS_NUMBER.count looprn open cur2;rn loop rn var_test :=null;rn fetch cur2 into var_test;rn EXIT WHEN cur2%NOTFOUND; rn --不是会签节点rn if var_count =1 thenrn select NEXTNODEID into var_nextnodeid from t_wfnodeconditions where WFID=WFID_VARCHAR2 and NODEID=CURRENTNODE_VARCHAR2;rn select NODETYPE into var_nodetype from t_wfnodes where GUID =var_nextnodeid;rn end if;rn --nextnode不是结束节点rn if var_nodetype<>'003' thenrn --操作类型区分nextnodern if PARAMS_ACTIONTYPE_VARCHAR2(i)='input' and var_count=1 thenrn var_nextnode:=var_nextnodeid;rn var_curstatus:=0;rn var_nextstatus:=1;rn end if;rnrn if PARAMS_ACTIONTYPE_VARCHAR2(i)='next' and var_count=1 thenrn var_nextnode:=var_nextnodeid;rn var_curstatus:=2;rn var_nextstatus:=3;rn end if;rnrn if PARAMS_ACTIONTYPE_VARCHAR2(i)='edit' thenrn var_nextnode:=CURRENTNODE_VARCHAR2;rn var_curstatus:=4;rn var_nextstatus:=5;rn end if;rnrn if PARAMS_ACTIONTYPE_VARCHAR2(i)='提取' thenrn var_nextnode:=CURRENTNODE_VARCHAR2;rn var_curstatus:=6;rn var_nextstatus:=7;rn end if;rnrn if PARAMS_ACTIONTYPE_VARCHAR2(i)='HANG' thenrn var_nextnode:=CURRENTNODE_VARCHAR2;rn var_curstatus:=8;rn var_nextstatus:=9; rn end if;rnrn --根据操作类型写sql,用delete和insert代替updatern rn if PARAMS_ACTIONTYPE_VARCHAR2(i)='input' or PARAMS_ACTIONTYPE_VARCHAR2(i)='next' or PARAMS_ACTIONTYPE_VARCHAR2(i)='edit' orrn PARAMS_ACTIONTYPE_VARCHAR2(i)='提取' or PARAMS_ACTIONTYPE_VARCHAR2(i)='HANG' and var_test=PARAMS_TIMESTAMP_VARCHAR2(i) thenrn --if i=1 thenrn --往历史表插入数据,更新currenttask表rn insert into t_wfcompletetasks select * from t_wfcurrenttasks where WFID=WFID_VARCHAR2 ;rn --end if;rn rn update t_wfcurrenttasks set CURRENTNODE=CURRENTNODE_VARCHAR2,CURRENTSTATUS=var_curstatus,NEXTNODE=var_nextnode,rn NEXTSTATUS=var_nextstatus,ACTIONTYPE=PARAMS_ACTIONTYPE_VARCHAR2(i),OPERUSER=PARAMS_OPERUSER_VARCHAR2(i),rn OPERDATE=sysdate where WFID=WFID_VARCHAR2 ; rn /*rn delete from t_wfcurrenttasks where WFID=WFID_VARCHAR2 and OPERUSER=PARAMS_OPERUSER_VARCHAR2(i);rn insert into t_wfcurrenttasks (WFID,ENTITYID ,CURRENTNODE, CURRENTSTATUS,NEXTNODE ,NEXTSTATUS ,rn ACTIONTYPE ,IS_UNDO ,OPERUSER,OPERDATE,INITMONEY,RESULTMONEY, REMARK ,TOLLYFLAG, AUTOAUDITFLAG,VOUTYPEID)rn values (WFID_VARCHAR2,PARAMS_ENTITYID_VARCHAR2(i),CURRENTNODE_VARCHAR2 ,var_curstatus,var_nextnode,var_nextstatus,rn PARAMS_ACTIONTYPE_VARCHAR2(i),PARAMS_IS_UNDO_NUMBER(i),PARAMS_OPERUSER_VARCHAR2(i),sysdate,PARAMS_INITMONEY_NUMBER(i),rn PARAMS_RESULTMONEY_NUMBER(i),'test',PARAMS_TOLLYFLAG_NUMBER(i),PARAMS_AUTOAUDITFLAG_NUMBER(i),PARAMS_VOUTYPEID_VARCHAR2(i));rn end if;rn rn if i>1 thenrn insert into t_wfcurrenttasks (WFID,ENTITYID ,CURRENTNODE, CURRENTSTATUS,NEXTNODE ,NEXTSTATUS ,rn ACTIONTYPE ,IS_UNDO ,OPERUSER,OPERDATE,INITMONEY,RESULTMONEY, REMARK ,TOLLYFLAG, AUTOAUDITFLAG,VOUTYPEID)rn values (WFID_VARCHAR2,PARAMS_ENTITYID_VARCHAR2(i),CURRENTNODE_VARCHAR2 ,var_curstatus,var_nextnode,var_nextstatus,rn PARAMS_ACTIONTYPE_VARCHAR2(i),PARAMS_IS_UNDO_NUMBER(i),PARAMS_OPERUSER_VARCHAR2(i),sysdate,PARAMS_INITMONEY_NUMBER(i),rn PARAMS_RESULTMONEY_NUMBER(i),'test',PARAMS_TOLLYFLAG_NUMBER(i),PARAMS_AUTOAUDITFLAG_NUMBER(i),PARAMS_VOUTYPEID_VARCHAR2(i));rn end if;rn */rn end if;rn /*rn if PARAMS_ACTIONTYPE_VARCHAR2(i)='edit' orrn PARAMS_ACTIONTYPE_VARCHAR2(i)='提取' or PARAMS_ACTIONTYPE_VARCHAR2(i)='HANG' thenrn if i=1 then rn insert into t_wfcompletetasks select * from t_wfcurrenttasks where WFID=WFID_VARCHAR2 ;rn update t_wfcurrenttasks set CURRENTNODE=CURRENTNODE_VARCHAR2,CURRENTSTATUS=var_curstatus,NEXTNODE=var_nextnode,rn NEXTSTATUS=var_nextstatus,ACTIONTYPE=PARAMS_ACTIONTYPE_VARCHAR2(i),OPERUSER=PARAMS_OPERUSER_VARCHAR2(i),rn OPERrn =sysdate where WFID=WFID_VARCHAR2; rn end if;rn rn if i>1 thenrn update t_wfcurrenttasks set CURRENTNODE=CURRENTNODE_VARCHAR2,CURRENTSTATUS=var_curstatus,NEXTNODE=var_nextnode,rn NEXTSTATUS=var_nextstatus,ACTIONTYPE=PARAMS_ACTIONTYPE_VARCHAR2(i),OPERUSER=PARAMS_OPERUSER_VARCHAR2(i),rn OPERDATE=sysdate where WFID=WFID_VARCHAR2;rn end if;rn end if;rn */rn if PARAMS_ACTIONTYPE_VARCHAR2(i)='recall' or PARAMS_ACTIONTYPE_VARCHAR2(i)='discard' or PARAMS_ACTIONTYPE_VARCHAR2(i)='delete' orrn PARAMS_ACTIONTYPE_VARCHAR2(i)='back' and var_test=PARAMS_TIMESTAMP_VARCHAR2(i) thenrn --删除currenttask表,从历史表中取数据放入currenttask表rn --if i=1 thenrn delete from t_wfcurrenttasks where WFID=WFID_VARCHAR2 ;rn --insert into t_wfcurrenttasks select taskid,wfid,entityid,currentnode,currentstatus,nextnode,nextstatus,actiontype,is_undo,operuser,t_wfcompletetasks.operdate,initmoney,resultmoney,remark,tollyflag,autoauditflag,voutypeid from t_wfcompletetasks,(select OPERDATE,ROW_NUMBER() OVER(ORDER BY OPERDATE DESC)as rk from t_wfcompletetasks ) t rn --where t_wfcompletetasks.operdate=t.OPERDATE and rk=1 and rownum<2;rn --end if;rn /*rn if i>1 thenrn insert into t_wfcurrenttasks select taskid,wfid,entityid,currentnode,currentstatus,nextnode,nextstatus,actiontype,is_undo,operuser,t_wfcompletetasks.operdate,initmoney,resultmoney,remark,tollyflag,autoauditflag,voutypeid from t_wfcompletetasks,(select OPERDATE,ROW_NUMBER() OVER(ORDER BY OPERDATE DESC)as rk from t_wfcompletetasks ) t rn where t_wfcompletetasks.operdate=t.OPERDATE and rk=1 and rownum<2;rn end if; rn */ rn end if;rnrn--nextnode为结束节点 rn if var_nodetype='003' and var_test=PARAMS_TIMESTAMP_VARCHAR2(i) thenrn delete from t_wfcurrenttasks where WFID=WFID_VARCHAR2;rn end if;rnrn end if;rn
关于VB中rdoConnection.openresult中游标的问题
这个概念很模糊,谁有关于这个的资料吗rnMSDN的看不大明白
关于存储过程中游标的问题
存储过程的代码如下:rncreate or replace procedure pro_checkSys(sendid in varchar2,rn sendpwd in varchar2,rn iResult out integer) isrnpsendid cssystable.sendid%type; /*来源系统id*/rnpsendpwd cssystable.sendpwd%type; /*来源系统密码*/rnrn/*自定义游标 获取符合条件的、在用的系统id和密码*/rncursor c_sysInfo is select t.sendid,t.sendpwd from cssystable t where t.sendid=sendid and t.sendpwd=sendpwd ;/*声明游标*/rnrnbeginrnrn /*打开游标*/rn open c_sysInfo;rn fetch c_sysInfo into psendid,psendpwd; /*提取游标*/rn close c_sysInfo;rn if(psendid is null) thenrn DBMS_OUTPUT.put_line('来源系统id: '||sendid||' 密码: '||sendpwd||'的信息未找到!');rn iResult:=2001;rn elsern DBMS_OUTPUT.put_line('来源系统id:'||sendid||' 的密码为:'||psendpwd);rn iResult:=0;rn end if;rnend pro_checkSys ;rn现在的问题是,只要数据库里有数据,调存储过程时,返回的iResult都为0;rn请大侠们帮忙看一下。
存储过程中游标的问题
以下是我写的过程rn--declare 2 temp varrndeclare @var_tempgxh int,@var_tempid int,@var_tempce money,@var_tempye moneyrndeclare @var_gxh int,@var_id int,@var_ce money,@var_ye moneyrnrn--declare cursorrnDECLARE seconda_cursor SCROLL CURSOR FORrnSELECT 关系号,凭证ID,(借方金额-贷方金额) as 差额,余额 from a order by 关系号,凭证IDrnrnOPEN seconda_cursorrnfetch first from seconda_cursor into rn @var_tempgxh,rn @var_tempid,rn @var_tempce,rn @var_tempyernfetch next from seconda_cursor into rn @var_gxh,rn @var_id,rn @var_ce,rn @var_yernWHILE (@@FETCH_STATUS) = 0rnbeginrn if (@var_gxh= @var_tempgxh)rn beginrn update a set 余额=@var_tempye+@var_ce --这句话的本意是update当前记录 但结果却update 了所有的记录rn select @var_tempgxh=@var_gxhrn endrnendrnrnclose seconda_cursorrndeallocate seconda_cursorrn上述的写法问题在何处 初学写过程 大家帮忙啊
数据库中游标的概念
[size=medium]游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。 游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果   每个游标...
Oracle存储过程中游标的简单使用
初衷: 存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错: ORA-01422: exact fetch returns more than requested number of rows 若想让存储过程中的查询语句返回多行结果不报错,则需要使用游标来实现。 本例主要也是用来熟悉存储过程中游标的简单使用方法。案例所涉及
存储过程中游标的小问题
如果我定义个一个游标rnDECLARE My_Cur CURSOR SCROLL FOR select * from aaarnrn但是在使用过程中 当这个表的处理完成了以后 我想把它的select语句改成 select * from bbb 该怎么做?rn谢谢!!
MySQL 存储过程中游标的循环输出
[code=SQL]DELIMITER $$rnrnDROP PROCEDURE IF EXISTS `getData` $$rnCREATE PROCEDURE `getData`(out a1 char(5),out a2 varchar(20),out a3 char(5))rnBEGINrnrn declare done int default 0;rn declare num char(5);rn declare s_name varchar(20);rn declare s_course char(5);rn declare stu_data cursor forrnrn select s.student_id,s.name,st.course_idrn from student s left join (select student_id,course_idrn from clazzrn group by student_idrn )as strn on s.student_id = st.student_idrn order by student_id asc;rnrn declare continue handler for not found set done = 1;rnrnrnrnrnrn /*-------------open cursor------------*/rn open stu_data;rn cursor_loop:looprn fetch stu_data into a1,a2,a3;rnrn select a1,a2,a3 into outfile 'c:a.txt';rn /*---------loop--------*/rn if done=1 thenrn leave cursor_loop;rn end if;rn end loop cursor_loop;rnrn close stu_data;rnrnrnEND $$rnrnDELIMITER ;[/code]rnrnrn1.怎么样才能用一个列把所有数据显示出来。rn2.当我outfile时怎么养才能追加数据呢,现在是写完第一个数据后就报错“c:a.txt is exits”;
Oracle Pro*c中游标的问题
我写了一个function 成功执行后,该函数返回一个REF CURSOR,rn但现在是我如何在proc中操作这个游标,将数据集取出来,存入BUFFER中呢?rn劳烦各位朋友给些指点。
数据库中游标的问题?
username="dd"rnsql="select * from aa where UserName='" & username & "'"rnset rst=server.CreateObject ("adodb.recordset")rn rst.Open sql,conn,3,2rn if rst.RecordCount < 1 thenrn rst.addnew()rn end ifrn rst("age")=51 rn rst.update()rn我是想从数据库先查找一个人,没有就增加一条新记录,有就在原记录上修改。 rn我的数据库中有一个dd,但是不知道为什么没有修改呢。
oracle存储过程中游标的问题
oracle存储过程中一游标定义为:rnCURSOR MANU_BOM_ITEM ISrn SELECT vcAspID,vcGoodsID,vcGoodsName,vcChildBomID,vcBomItemHelpCode FROM TB_MANU_BOM_ITEM WHERE vcBomID = v_vcBomID AND vcAspID=v_aspID; rn................rnopen MANU_BOM_ITEM ;rnfetch MANU_BOM_ITEM into v_vcAspID,v_vcGoodsID,v_vcGoodsName,v_vcChildBomID,v_vcBomItemHelpCode;rnwhile MANU_BOM_ITEM%found looprn...............rnend loop;rnclose MANU_BOM_ITEM ;rn..............rnrn我在pl/sql 中测试时,执行到while MANU_BOM_ITEM%found loop后,就直接执行close MANU_BOM_ITEM ,也就是游标没有记录集返回;但我在sql窗口中直接执行游标里的select语句:rnSELECT vcAspID,vcGoodsID,vcGoodsName,vcChildBomID,vcBomItemHelpCode FROM TB_MANU_BOM_ITEM WHERE vcBomID = v_vcBomID AND vcAspID=v_aspID;rn是有记录集的.rn真是奇怪,哪位高手指点下? rnrnrn
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件