很急,没办法了
往上提一提吧
online wait...

解决方案 »

  1.   

    直接执行SQL语句就可以了
    "select func_name(parameter) as result from dual;"
      

  2.   

    不知道这条语句的规范,所以试了几下总是出错
    能否给我个具体的sql吗?万分谢谢我的function如下,请注意是返回3个值,不只是
    两个OUT,还有一个返回状态(ok或者错误信息)function vb_fun
    (
    var_in_1 in varchar2,
    var_in_2 in varchar2,
    var_out_1 out number,
    var_out_2 out varchar2
    )
    return varchar2 
    is
    begin
    .......
    var_out_1:=12345;
    var_out_2:='12345';
    return('ok');
    exception
    when others then
    return(sqlerrm);
    end;
      

  3.   

    那你怎么要做成函数呢?明明用procedure可以轻松搞定的。
      

  4.   

    再提
    请问怎么写这个sql?
    select 函数名(参数) 返回值 from dual;oracle函数定义见上
    谢谢
      

  5.   

    因为在生产数据库上我没有权限,只有自己在本地装了个oracle做测试
    (实在是没办法了),做了2个测试用的函数第1个
    create function test1
    (
    var1 in varchar2
    )
    return varchar2 
    is
    begin
    return (var1||' 测试一');
    end;
    /用select test1('hello') from dual;
    程序运行正常,能得到我需要的一个正确的返回值 'hello 测试一'第2个
    create function test2
    (
    var1 in varchar2,
    var2 out varchar2
    )
    return varchar2 
    is
    begin
    var2:='测试二';
    return (var1||' 测试二');
    end;
    /
    再用select test2('hello') from dual;
    程序就不能运行了,得不到我需要的二个返回值。错误信息如下:
    ora-06553:pls-306:wrong number or types of arguments in call to 'test2'我已经为这问题头痛了2天了,请斑竹和专家高手帮忙了,并请尽量解决
    问题,直到最终可以保证程序可以调用这个函数
    万分感谢
      

  6.   

    select func_name(parameter) into result from dual;----是ORACLE语句会得该函数的返回值用Command可以实现调用存储过程,把函数写在存储过程
      

  7.   

    你好
    关键是test2有out,还有return //请看我的函数定义 test1和test2用test1的时候
    vb程序里这么写
    ......
    com.CommandText = "select test1('hello') as ccc from dual"
    com.CommandType = adCmdText
    set rs =new ADODB.Recordset
    rs=com.execute
    ....
    xxx=rs("ccc")
    .....
    可以拿到返回值但对于test2,我就不知道怎么写那个commandtext了
    试了很多次都是错误如果用
    com.CommandText = "test1('hello') as ccc from dual"
    com.CommandType =adCmdStoredProc
    就会报错,说存储过程不存在或者undifined请教了,谢谢