资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

如何解决PB中调用ORACLE中存储过程的问题

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

本人在oracle数据库中定义了一个pb_test的存储过程,具体如下所示:  
   
  create   or   replace   procedure   pb_test(  
  jiaokudan_id   out   VARCHAR2,  
  zzd_id   out   varchar2,  
  importer   in   varchar2  
  )    
  as    
  begin  
      select   JIAOKUDAN_ID,ZZD_ID  
      into   jiaokudan_id,zzd_id  
      FROM   MIS_MAOPEI_INPUT  
      WHERE   IMPORTER   =   importer;  
  end   ;  
   
  运行无错误  
   
  然后在pb的程序中调用上面的存储过程的程序如下所示:  
  string   importer  
  string   jiaokudan_id  
  string   zzd_id  
   
  DECLARE   pb   PROCEDURE   FOR   PB_TEST  
  using   sqlca;  
   
  EXECUTE   pb(:importer)   ;  
  fetch   pb   into   :jiaokudan_id,:zzd_id;  
  if   sqlca.sqlcode<>0   then  
      messagebox("sqlca.sqlerrtext",sqlca.sqlerrtext)  
  else  
      messagebox("结果","jiaokudan_id   is:"+jiaokudan_id+"zzd_id   is:"+zzd_id)  
  end   if  
   
  结果出来的提示是"cursor   is   not   open",无法出现应该的结果  
   
   
  之后,我把上面的ORACLE存储过程改了一下,不用in参数,直接用一个具体的值代替,具体如下所示:  
  create   or   replace   procedure   pb_test(  
  jiaokudan_id   out   VARCHAR2,  
  zzd_id   out   varchar2  
  )    
  AS    
  begin  
      select   JIAOKUDAN_ID,ZZD_ID  
      into   jiaokudan_id,zzd_id  
      FROM   MIS_MAOPEI_INPUT  
      WHERE   IMPORTER   =   aaa;  
  end   ;  
   
  然后在pb的程序中调用上面的存储过程的程序如下所示:  
   
  string   importer  
  string   jiaokudan_id  
   
  DECLARE   pb   PROCEDURE   FOR   PB_TEST  
  using   sqlca;  
   
  EXECUTE   pb   ;  
  fetch   pb   into   :jiaokudan_id,:zzd_id;  
  if   sqlca.sqlcode<>0   then  
      messagebox("sqlca.sqlerrtext",sqlca.sqlerrtext)  
  else  
      messagebox("结果","jiaokudan_id   is:"+jiaokudan_id+"zzd_id   is:"+zzd_id)  
  end   if  
  string   zzd_id  
   
  这次倒是能够正确实现,不知前面的那次带参数的错在何处,请各位大侠帮助,多谢!

网友回答:

发表者:sywen

应该是select   JIAOKUDAN_ID,ZZD_ID  
      into   jiaokudan_id,zzd_id  
      FROM   MIS_MAOPEI_INPUT  
      WHERE   IMPORTER   =   importer;  
  不止一行纪录


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved