现在我不明白的地方基本如下(跟VB和ADO无关)有一个如下的functioncreate function test2
(
var1 in varchar2,
var2 out varchar2
)
return varchar2 
is
begin
var2:='测试二';
return (var1||' 测试二');
end;
/简化的问题:
在sql*plus里用 select test1(...) .... from dual;
怎么填写参数和变量(...和....)来正确实现函数的调用附:
在另外一个函数
create function test1
(
var1 in varchar2
)
return varchar2 
is
begin
return (var1||' 测试一');
end;
/在sql*plus里用select test1('hello') from dual;
可以得到我需要的返回值

解决方案 »

  1.   

    简化的问题: 
    在sql*plus里用 select test1(...) .... from dual; 
    怎么填写参数和变量(...和....)来正确实现函数的调用 这里写错了应该是
    在sql*plus里用 select test2(...) .... from dual; 
    怎么填写参数和变量(...和....)来正确实现函数的调用 事实上我调用test1就是这么做的,但test2就是做不了,我也不知道
    怎么处理,再请指教了,谢谢
      

  2.   

    问题所在:test2有一个out参数
    必须定义此参数才能正确执行
    set serverout on
    /
    delcare
    aaa varchar2 := 'aa';
    bbb varchar2 ;
    ccc varchar2 ;
    begin 
    ccc = test2(aaa,bbb);
    end;
    /
      

  3.   

    纠正:
    declare
    aaa varchar2 := 'aa';
    bbb varchar2 ;
    ccc varchar2 ;
    begin 
    ccc := test2(aaa,bbb);
    end;
      

  4.   

    再纠正:
    set serverout on
    /
    declare
    aaa varchar2(10) := 'aa';
    bbb varchar2 (10);
    ccc varchar2 (10);
    begin
    ccc := test2(aaa,bbb);
    dbms_output.put_line(aaa);
    dbms_output.put_line(bbb);
    dbms_output.put_line(ccc);
    end;
    /
      

  5.   

    非常感谢,
    但很遗憾的是,我只能在客户端的编程工具VB上调用这个函数
    有什么办法在VB上实现吗?
    还是用到SQL语句?
    select test2(..) ... from dual;
    谢谢