首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • Oracle 返回值問題 .
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coolman2009
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-06-12 18:23:55 楼主
    CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName NVARCHAR2,v_IDType NVARCHAR2,v_SeqID NVARCHAR2) IS
    BEGIN

      UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;
     
      SELECT CURRVAL
      FROM ALL_SEQUENCES
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;
     
    END usp_GenNewSeqVal2;

    以上CURRVAL想返回單值,但好似 "PLS-00428: 在此 SELECT 敘述句中預期會出現一個 INTO 子句" 出現了錯誤,我用的是TOAO。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hebo2005
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      2

    发表于:2008-06-12 18:26:471楼 得分:0
    存储过程里所有select语句格式

    select 字段
          into 变量
        from 表
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hebo2005
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      2

    发表于:2008-06-12 18:27:492楼 得分:0
    你这存储过程全是in 的变量,没有out变量,怎么返回值啊?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coolman2009
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-12 18:50:503楼 得分:0
    那怎麼改  !!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hxmsammi
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-12 19:41:024楼 得分:0
    UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;

    这个语句之后最好加个
    commit;语句,这样更新的东西才能生效

    想得到什么结果定义存储过程的时候在下面的()里加入out参数就可以返回了
    CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName NVARCHAR2,v_IDType NVARCHAR2,v_SeqID NVARCHAR2) IS

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coolman2009
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-13 09:29:495楼 得分:0
    CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName IN NVARCHAR2,v_IDType IN NVARCHAR2,v_SeqID IN NVARCHAR2, CurrentSeqValue OUT NVARCHAR2)
    IS
    BEGIN

      UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;
     
      SELECT CURRVAL
        INTO CurrentSeqValue
      FROM ALL_SEQUENCES
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;

    END usp_GenNewSeqVal2;
    /

    已改,但我可怎運行,因為客戶端是用C#寫的,目的是直接得到CURRVAL
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • day572
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-13 09:39:316楼 得分:0
    你在外面定义一个CurrentSeqValue ,直接传参数过来到usp_GenNewSeqVal2 函数,就可以得到CURRVAL
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hhfwyl
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-13 09:42:247楼 得分:0
    欢迎加入oracle qq群9701750
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hebo2005
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      2

    发表于:2008-06-13 09:46:338楼 得分:0
    先定义三个变量 分别是两个in的,一个out的,然后调用存储过程,然后看out的变量的值
    不过c#调用存储过程我没用过,你google一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • samuellei
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-13 09:50:479楼 得分:0
    select into variant from ===== where======
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved