当前位置: 代码迷 >> PB >> pb调用oracle存储过程失败,看看错哪了
  详细解决方案

pb调用oracle存储过程失败,看看错哪了

热度:86   发布时间:2016-04-29 05:33:49.0
pb调用oracle存储过程失败,看看哪里错了?
oracle10g
create or replace procedure AutoNo
(
  p_BeforeStr  varchar2,
  p_AutoNmb  out varchar2,
  p_QType number
 )
Is
 begin
     p_AutoNmb := Rtrim(p_BeforeStr)||'-'|| to_char(sysdate,'yyyymmddhh24missSSSSS');
     p_AutoNmb := substr(p_AutoNmb,1,p_QType);
END AutoNo;
//测试正常;


pb12.5
两种方法调用:

第一种方法,sqlca.sqlcode -1
第二种方法,p_str取出的是乱码。具体实现如下;

subroutine autono(string P_BEFORESTR,ref string P_AUTONMB,decimal P_QTYPE) RPCFUNC ALIAS FOR "autono"
//以上为自动生成

按钮代码:
//uo_transcation_test.DBMS =profilestring("sqlca.ini","database","dbms"," ")// 执行到这句就报错,找不到object
//uo_transcation_test.LogPass =profilestring("sqlca.ini","database","LogPassword"," ")
//uo_transcation_test.LogId =profilestring("sqlca.ini","database","logid"," ")
//uo_transcation_test.AutoCommit = False
//uo_transcation_test.DBParm =profilestring("sqlca.ini","database","DBParm"," ")
//connect using uo_transcation_test;
//uo_transcation_test.autono(p_ys,p_str,p_ty)
改为
sqlca.autono(p_ys,p_str,p_ty)  //能返回,但乱码(如图)
两种方法各错在哪里?如何修改?
谢谢!
------解决方案--------------------
这么写试试


declare my_pro procedure for autono(:p_ys, :p_ty) using sqlca;
execute my_pro;
fetch my_pro into :ls_return;
close_my_pro;
  相关解决方案