直接执行SQL语句就可以了 "select func_name(parameter) as result from dual;"
不知道这条语句的规范,所以试了几下总是出错 能否给我个具体的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;
那你怎么要做成函数呢?明明用procedure可以轻松搞定的。
再提 请问怎么写这个sql? select 函数名(参数) 返回值 from dual;oracle函数定义见上 谢谢
因为在生产数据库上我没有权限,只有自己在本地装了个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天了,请斑竹和专家高手帮忙了,并请尽量解决 问题,直到最终可以保证程序可以调用这个函数 万分感谢
select func_name(parameter) into result from dual;----是ORACLE语句会得该函数的返回值用Command可以实现调用存储过程,把函数写在存储过程
你好 关键是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请教了,谢谢
"select func_name(parameter) as result from dual;"
能否给我个具体的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;
请问怎么写这个sql?
select 函数名(参数) 返回值 from dual;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天了,请斑竹和专家高手帮忙了,并请尽量解决
问题,直到最终可以保证程序可以调用这个函数
万分感谢
关键是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请教了,谢谢