当前位置:编程学习 > C#/ASP.NET >>

Oracle数据库问题

在oracle存储过程中调用另一个存储过程,调用时明明有值,但是当运行到被调用存储过程时,只有一个参数有值,其他没值,被调用存储过程四个参数,三个IN一个OUT 
--------------------编程问答-------------------- 楼主的结贴率是:76.92%  大家小心了, --------------------编程问答--------------------
引用 1 楼 yuyanxing09 的回复:
楼主的结贴率是:76.92%  大家小心了,


我晕 --------------------编程问答-------------------- 你的意思是,调用时传进去值了,但是存储过程中去调用第二个存储过程时,值没了?那么请把存储过程的声明贴出来分析。 --------------------编程问答--------------------
CREATE OR REPLACE PROCEDURE "I_test"(i_s       IN Task.Warehouseid%type,
                                                 i_Er   IN Equipment.Equipmentnumber%TYPE,
                                                 i_T  IN task.targetaddresstext%type,
                                                 o_result            out sys_refcursor) is
 这是声明,

I_test(i_s      => i_warehouseid,
                     i_Er    => i_equipmentnumber,
                     i_T  => i_destination,
                     o_result            => o_outboundtask);

--------------------编程问答-------------------- 前面是声明,后面是调用,数据类型匹配没有问题,请高手指点还有什么可能会出现这种问题 --------------------编程问答-------------------- 我还是没看到你的传值过程,不是数据类型问题,你传值过程在哪里? --------------------编程问答--------------------
引用 6 楼 qldsrx 的回复:
我还是没看到你的传值过程,不是数据类型问题,你传值过程在哪里?


I_test(i_s => i_warehouseid, i_Er => i_equipmentnumber, i_T => i_destination, o_result => o_outboundtask);

 这就是调用存储过程... i_warehouseid, i_equipmentnumber,i_destination 这几个值本来都有值的跳到 I_test这个存储过程后除了i_warehouseid其他的就为空了
        
--------------------编程问答--------------------

            没见过这样的调用,我给你写个,你回去试下:
I_test(i_s  => 1,
       i_Er => 1,
       i_T  => 1,
       o_result  => o_outboundtask);

这样才叫有值,你那个值我压根没看到,只看到变量,变量的赋值过程在何处?问了半天都不说,真拿你没办法。 --------------------编程问答-------------------- 变量的值传进去的,调试到调用的时候都是有值的。。 --------------------编程问答-------------------- 你自己研究去吧,给的信息那么少,存储过程的实现,调用全过程都没有,我帮不了忙,神仙也没办法,如果你觉得这是需要保密的,你自己研究去吧。88
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,