有关ASP调用ORACLE函数的问题,大家快来帮帮忙,顶者也给分

时间:2021-05-13 21:30:31
在ASP中调用ORACLE的过程能成功,
但调用带返回值的函数却不成功,提示“FUN1不是过程或尚未定义”
下面写了最简单的函数,请大家帮忙,怎么才能调用此函数,并输出返回值
CREATE OR REPLACE  FUNCTION "SA"."FUN1" (
 i in integer,
 o out integer
)
return integer
as
begin
 o:=i+1;
 return o;
end;
-----------------------------------------------------------
不懂的也请帮忙顶一下,谢谢

22 个解决方案

#1



1、FUN1的权限你有不?

2、如果有权限,那是和ORACLE系统的程序不一样的,ORACLE系统支持,但ASP模式不支持!

#2


怎么设置权限
我写的存储过程能调用,但带返回值的函数就不行为什么

#3


源码:
set Con=Server.CreateObject("Adodb.connection")

Con.Open "Provider=OraOLEDB.Oracle;data source=dbserver;User ID=sa;password=12345;"
 
Set RS =Server.CreateObject("ADODB.RecordSet")

Set CMD=Server.CreateObject("ADODB.Command")

CMD.ActiveConnection=Con

CMD.CommandType=adCmdStoredProc
'设置Command执行的是存储过程。
 CMD.Parameters.Append CMD.CreateParameter("i",adINTEGER, adParamInput,30,"201")

'给存储过程输入变量i赋值
CMD.Parameters.Append CMD.CreateParameter("o",adInteger ,adParamOutput)
'设置输出变量。

getLastMessages="fun1"
CMD.CommandText=getLastMessages
'指定要调用的存储过程名。

CMD.execute
'调用执行存储过程。

getLastMessage=CMD( o )'取得输出值

CMD.ActiveConnection=Nothing
Set CMD=Nothing

#4


up

#5


帮你顶

#6


function can't be called by ASP like stord procedure

you must call it by a stored procedure indirectly.

#7


三角猫 
应该怎么调用,能举个例子吗

#8


帮你顶

#9


我也自己顶一下大家帮个忙啊

#10


还有人帮我顶吗

#11


帮你顶吧  我不会

#12


有些人说这样调用
select fid,fusername,fun_videoid(femail) from t_webuserinfo
行吗,我试了怎么不行

#13


帮我顶上去

#14


你的函数名不是fun1吗,怎么变成了fun_videoid
上面这样子应该是可以的,我也是这么用函数的
可以先试一个简单的
select fun1(5) from dual

#15


TO:骗子李三
我只是举个例子,用select 可以了
但如果函数返回的是游标类型,ASP中怎么定义啊

#16


下面这个函数,怎么在ASP能调用并取得游标类型的返回值
---------------------------------

create or replace package pkg_test
as
  type myCursor is ref cursor;
  function get(p_id number) return myCursor;
end pkg_test;

create or replace package body pkg_test 
as
  function get(p_id number) return myCursor is
     rc myCursor;
     strsql varchar2(200);
  begin
     if p_id=0 then 
        open rc for select a.user_name from fnd_user a ;  
     else
        strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
        open rc for strsql using p_id;
     end if;
     return rc;  
     end get;
     
end pkg_test;

#17


ASP中怎么调用这个函数

#18


帮不到咯~恐龙^_^ 帮你up下

#19


UP

#20


帮顶了只能。。。

#21


自己解决结贴

#22


我不懂,帮你顶。

#1



1、FUN1的权限你有不?

2、如果有权限,那是和ORACLE系统的程序不一样的,ORACLE系统支持,但ASP模式不支持!

#2


怎么设置权限
我写的存储过程能调用,但带返回值的函数就不行为什么

#3


源码:
set Con=Server.CreateObject("Adodb.connection")

Con.Open "Provider=OraOLEDB.Oracle;data source=dbserver;User ID=sa;password=12345;"
 
Set RS =Server.CreateObject("ADODB.RecordSet")

Set CMD=Server.CreateObject("ADODB.Command")

CMD.ActiveConnection=Con

CMD.CommandType=adCmdStoredProc
'设置Command执行的是存储过程。
 CMD.Parameters.Append CMD.CreateParameter("i",adINTEGER, adParamInput,30,"201")

'给存储过程输入变量i赋值
CMD.Parameters.Append CMD.CreateParameter("o",adInteger ,adParamOutput)
'设置输出变量。

getLastMessages="fun1"
CMD.CommandText=getLastMessages
'指定要调用的存储过程名。

CMD.execute
'调用执行存储过程。

getLastMessage=CMD( o )'取得输出值

CMD.ActiveConnection=Nothing
Set CMD=Nothing

#4


up

#5


帮你顶

#6


function can't be called by ASP like stord procedure

you must call it by a stored procedure indirectly.

#7


三角猫 
应该怎么调用,能举个例子吗

#8


帮你顶

#9


我也自己顶一下大家帮个忙啊

#10


还有人帮我顶吗

#11


帮你顶吧  我不会

#12


有些人说这样调用
select fid,fusername,fun_videoid(femail) from t_webuserinfo
行吗,我试了怎么不行

#13


帮我顶上去

#14


你的函数名不是fun1吗,怎么变成了fun_videoid
上面这样子应该是可以的,我也是这么用函数的
可以先试一个简单的
select fun1(5) from dual

#15


TO:骗子李三
我只是举个例子,用select 可以了
但如果函数返回的是游标类型,ASP中怎么定义啊

#16


下面这个函数,怎么在ASP能调用并取得游标类型的返回值
---------------------------------

create or replace package pkg_test
as
  type myCursor is ref cursor;
  function get(p_id number) return myCursor;
end pkg_test;

create or replace package body pkg_test 
as
  function get(p_id number) return myCursor is
     rc myCursor;
     strsql varchar2(200);
  begin
     if p_id=0 then 
        open rc for select a.user_name from fnd_user a ;  
     else
        strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
        open rc for strsql using p_id;
     end if;
     return rc;  
     end get;
     
end pkg_test;

#17


ASP中怎么调用这个函数

#18


帮不到咯~恐龙^_^ 帮你up下

#19


UP

#20


帮顶了只能。。。

#21


自己解决结贴

#22


我不懂,帮你顶。