CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  高级技术

asp中如何调用Oracle的存储过程?

楼主Yansharp(喜之狼)2003-09-02 14:49:13 在 Oracle / 高级技术 提问

在asp中,怎样在提交表单后,将表单的内容(数据量比较大),通过存储过程  
  存到数据库中?  
          1、表单的内容(近万条数据)如何传递给存储过程?  
          2、Asp中如何调用存储过程?  
   
          急切等待各路高手拔刀相助!必有重谢(100分)  
          一点儿提示也行,源代码例子也行,电子文档也行。拜托了。  
  问题点数:0、回复次数:2Top

1 楼NiuNiuTZ(风满袖)回复于 2003-09-02 16:31:51 得分 0

表单的内容???難道你是一下子讓用戶維護近万条数据,然后再提交倒數據庫的嗎?  
  搜索舊貼子,有很多。Top

2 楼beckhambobo(beckham)回复于 2003-09-02 17:12:27 得分 0

在ASP中调用动态ORACLE包\过程:  
   
  1.所查视图表结构:  
    名称                                                                             空?             类型  
    -----------------------------------------   --------   ----------------------------  
    ID                                                                                                   NUMBER  
    XK_SX                                                                                             NUMBER  
    XK_WSX_DJ                                                                                     NUMBER  
    XK_WSX_XJ                                                                                     NUMBER  
    XK_WSX_HJ                                                                                     NUMBER  
    F_ZS                                                                                               NUMBER  
    F_WZS_DJ                                                                                       NUMBER  
    F_WZS_XJ                                                                                       NUMBER  
    F_WZS_HJ                                                                                       NUMBER  
    SW_CS_DJ                                                                                       NUMBER  
    SW_CS_XJ                                                                                       NUMBER  
    SW_CS_HJ                                                                                       NUMBER  
    BZ                                                                                                   CHAR(100)  
    YY                                                                                                   CHAR(4)  
    XZQ                                                                                                 NUMBER  
    WRR2                                                                                               NUMBER  
    WRR3                                                                                               NUMBER  
    WRR2NAME                                                                                       CHAR(50)  
    WRR3NAME                                                                                       CHAR(50)  
    ADDVNM                                                                                           CHAR(9)  
   
  2.在ORACLE中包的定义:  
   
  CREATE   OR   REPLACE   PACKAGE   nb_supFind    
  AS  
      AS  
      TYPE   myrctype   IS   REF   CURSOR;  
       
      PROCEDURE   RecSel( p_StartDate   IN   CHAR,  
    p_EndDate       IN   CHAR,  
    p_Region         IN   VARCHAR2,       --分区内容  
    p_flag             IN   NUMBER,           --标识是行政区/二级区/三级区    
    p_col               IN   VARCHAR2,       --选中项目名  
    p_table           IN   VARCHAR2,       --操作表名  
    v_ADDV             OUT   myrctype       --作为输出的游标  
    );  
  END   nb_supFind;  
   
  CREATE   OR   REPLACE   PROCEDURE   NB_SURERFIND   (  
    --参数声明  
    p_StartDate   IN   VIEW_NB_TYGL.YY%TYPE,  
    p_EndDate       IN   VIEW_NB_TYGL.YY%TYPE,  
    p_Region         IN   VARCHAR2,       --分区内容  
    p_flag             IN   NUMBER,   --标识是行政区/二级区/三级区    
    p_item             IN   NUMBER,    
    p_table           IN   VARCHAR2,  
    )      
         
    AS  
       
      PROCEDURE   RecSel(  
      p_StartDate   IN   CHAR,  
    p_EndDate       IN   CHAR,  
    p_Region         IN   VARCHAR2,       --分区内容  
    p_flag             IN   NUMBER,           --标识是行政区/二级区/三级区    
    p_col               IN   VARCHAR2,       --选中项目名  
    p_table           IN   VARCHAR2,       --操作表名  
    v_ADDV             OUT   myrctype       --作为输出的游标  
    )   IS  
     
    strsql   VARCHAR2(500);  
     
    BEGIN  
        IF   p_flag   =   1   then  
                if   p_Region   =   'NULL'   then  
                        strsql:='SELECT   ADDVNM,YY,SUM('||p_col||')  
                                  FROM   '||p_table||            
                                  '   WHERE   YY   <=   '||p_EndDate||'   AND   YY>='||   p_StartDate||'        
                                  GROUP   BY   ADDVNM,YY';  
                else  
                        strsql:='SELECT   ADDVNM,YY,SUM('||p_col||')  
                                      FROM   '||p_table||            
                                  '   WHERE   YY   <=   TO_NUMBER('||p_EndDate||')   AND   YY>=TO_NUMBER('||   p_StartDate||')   AND     ADDVNM='''||p_Region||      
                                  '''   GROUP   BY   ADDVNM,YY';  
                end   if;  
                DBMS_OUTPUT.PUT_LINE(strsql);  
                --打开动态游标  
                OPEN   v_ADDV   FOR   strsql;    
          END   IF;  
    END   RecSel;  
  END   nb_supFind;      
   
  3.在SQL   PLUS中测试:  
  set   serveroutput   on  
  DECLARE  
      p_rc   NB_SUPFIND.myrctype;  
      str   varchar2(50);  
  BEGIN  
      NB_SUPFIND.RecSel('2000','2000','北京',1,'YSQ_SL','VIEW_NB_QSXK',p_rc);  
      LOOP    
          FETCH   p_rc   INTO   str;  
          DBMS_OUTPUT.PUT_LINE(str);  
          EXIT   WHEN   p_rc%NOTFOUND;  
      END   LOOP;      
  END;  
   
  成功!  
   
  4.在ASP里的调用  
          Set   Conn=Server.CreateObject("ADODB.Connection")  
          Set   Rs   =   Server.CreateObject("ADODB.Recordset")  
           
          '以下两句含在globo文件中  
          connstr="Provider=MSDAORA;Password=water;User   ID=water;Data   Source=oradb_netserver"  
          Session("connstr")=connstr  
           
          conn.Open   Session("connstr")  
   
          Set   CMD=Server.CreateObject("ADODB.Command")    
          CMD.ActiveConnection   =   conn  
          CMD.CommandType   =   adCmdText  
          CMD.CommandTimeout   =   0  
          CMD.Prepared   =   true  
   
          CMD.CommandText   =   "{call   nb_supFind.RecSel(?,?,?,?,?,?)}"     这里只写输入不写输出  
           
          CMD.Parameters.Append   CMD.CreateParameter("p_StartDate",129,1,4,"2000")'开始年份  
          CMD.Parameters.Append   CMD.CreateParameter("p_EndDate",129,1,4,EndYr)         '结束年份  
          CMD.Parameters.Append   CMD.CreateParameter("p_Region",129,1,9,Addv)           '行政区名  
          CMD.Parameters.Append   CMD.CreateParameter("p_flag",3,1,4,1)                         '标识分区  
          CMD.Parameters.Append   CMD.CreateParameter("p_col",200,1,50,Item)               '选中项目名  
          CMD.Parameters.Append   CMD.CreateParameter("p_table",200,1,100,Tname)           '得到表名  
   
          set   rs.Source   =   CMD  
          on   error   resume   next  
          set   rs=CMD.Execute  
           
          if   err.number   <>   0   then  
  response.Write   err.Description    
  response.End  
          end   if  
   
          rs.Open()  
   
   
    调试已通过~!:-)Top

相关问题

  • asp调用存储过程
  • asp调用存储过程
  • ASP调用存储过程...
  • ASP调用存储过程??
  • ASP调用ORACLE存储过程,返回值有问题???急!
  • 如何在ASP里面调用oracle的存储过程阿?
  • 着急!!!!在asp中存储过程(oracle)调用的问题
  • 在Oracle的存储过程中动态调用存储过程
  • Oracle调用Oracle存储过程?
  • jsp调用Oracle存储过程

关键词

  • 存储过程
  • asp
  • 数据
  • 内容
  • addvnm
  • supfind
  • 调用
  • wrr
  • nb
  • recsel

得分解答快速导航

  • 帖主:Yansharp

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo