你主要是要得到 ND OUT NUMBER 么?
如果是,写成过程,然后执行就行了

解决方案 »

  1.   

    你建函数的语句有问题
    create or replace function getTCBL(DWDM IN VARCHAR2) return NUMBER 
    你返回的就是ND呀create or replace procedure才是建过程,你的语句怪怪的
      

  2.   

    实际上存在2个返回值才采用我的这种“怪怪”的办法实现。
    当然,也可以改成 Procedure, 2个OUT参数。
    至于ND,实际上是指示取出的数是计划值,还是执行值;优先取计划值。
    创建语句中的 Cursor 为测试Cursor的使用写的,才真的没有必要用。
    好长时间没有用Oracle了,全忘了。
      

  3.   

    还有一个问题:我就是想在SQL Plus下进行调试而输出,
     dbms_output.put_line(...);
    好像没有输出啊!也不知道以前是采用什么办法进行调试的?
      

  4.   

    感谢各位。
    在 SQL Plus中进行测试的语句如下:DECLARE
     i NUMBER;
     j number;
    BEGIN
      j := getTCBL('02',i);
      dbms_output.put_line(i);
      dbms_output.put_line(j);
    END;
    /真简单。
    大家可以提供Java、Delphi等中如何调用的做法,继续给分。
      

  5.   

    那这个存储过程在vc里通过odbc调用呢?
      

  6.   

    大家可以提供Java、Delphi等中如何调用的做法,继续给分。先把这里揭了吧!!
      

  7.   

    执行:
    select getTCBL(....) from dual ;