在程序里
一般用
"begin /
xxx(100,100);/
end;"不过好像是commit时出错把过程贴出来

解决方案 »

  1.   

    ok -------------Create or Replace procedure XXXXX (n1 in number,
    n2 in number)
    as 
    n3 number;
    begin
        select min(www) into n3 from TT;
        if (n3 is null) then
            n3 := 0;
        end if;
        delete from TT where www<n1 and www between n1 and n1+n2;
    end;
    .
    /
      

  2.   

    发现你的用法不是C++的,是不是PB啊?
      

  3.   

    zzzsssccc(籍秋风) 说的对,exec procedure是SQL*PLUS中的调用方法,在程序里
    一般用
    "begin /
    xxx(100,100);/
    end;"
      

  4.   

    m_pDatabase->ExecuteSQL("begin / xxx(100,100); /end;");  8197error
    m_pDatabase->ExecuteSQL("begin \\ xxx(100,100); \\end;"); 8197error
    m_pDatabase->ExecuteSQL("begin / exec xxx(100,100); /end;"); 8197error.
    你们两个说的对不对啊?
      

  5.   

    估计你们没用过Oracl.h加oraclm32.dll的开发,TNND。Pro C不能算啊!
      

  6.   

    没有调查可就没有发言权哦,我可是用过oracl32.dll的。
    m_pDatabase->ExecuteSQL("begin / xxx(100,100); /end;");  
    应该为:
    m_pDatabase->ExecuteSQL("begin  xxx(100,100); end;");  
    zzzsssccc(籍秋风) 的帖子中的 / 是字符串换行的连接符,你现在的SQL语句是一行,当然不用/了,不过应该是\。m_pDatabase->ExecuteSQL("begin " \
                          " xxx(100,100);" \
                          " end;");  不过,不用\也是可以的。
    m_pDatabase->ExecuteSQL("begin " 
                          " xxx(100,100);" 
                          " end;");  
      

  7.   

    明白了!TNND。要用参数才能解决。
    先GetParamter,然后add参数,然后 begin xxx(:p1,:p2); end;
    然后remove参数。
    查了一下自己6年前的程序才知道,郁闷!