返回单个值的函数, 可以当变量用, 比如 select dbo.函数名(参数1, 参数2, ...) from ...where abc = dbo.函数名(参数1, 参数2...)
返回表的函数, 可以当数据表来使用, 比如 select * from dbo.函数名(参数1, 参数2, ...)
Ⅱ mysq 存储过程怎么调用自定义函数
call
或,如果在select中调用,直接写func()
~~~~~~~~~~~~~~~~~~~~~~~
mysql> delimiter $$
mysql> CREATE FUNCTION isodd(input_number int) //创建函数
-> RETURNS int
-> BEGIN
-> DECLARE v_isodd INT;
->
-> IF MOD(input_number,2)=0 THEN
-> SET v_isodd=FALSE;
-> ELSE
-> SET v_isodd=TRUE;
-> END IF;
->
-> RETURN(v_isodd);
->
-> END$$
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE PROCEDURE myProc(aNumber int) //创建mysql存储过程
-> Begin
-> IF (isodd(aNumber)) THEN
-> SELECT ' is odd';
-> ELSE
-> SELECT ' is even';
-> END IF;
-> END$$
Query OK, 0 rows affected (0.02 sec)
Ⅲ sql server存储过程 中 如何调用函数
直接在存储过程中写函数名称啊,如果此函数有返回值的则定义一个变量接受,如果带有参数的函数则传递一个相同类型的参数过去啊。哎,这样说不知道你明白没。
Ⅳ function直接调用存储过程
function调用存储过程?你说的function不是js的吧。
c#的
public static System.Data.DataSet ProcDataSet(string connStringName, string cmdText, params SqlParameter[] cmdParms)
{
System.Data.SqlClient.SqlConnection conn = GetConnection(connStringName);
System.Data.SqlClient.SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = CommandType.StoredProcere;
foreach (SqlParameter param in cmdParms)
{
cmd.Parameters.Add(param);
}
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataSet ds = new DataSet();
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
Ⅳ oracle存储过程中如何调用自定义的函数
oracle中调用函数是十分简单的,存储过车调用函数也是一样的。例子如下:
create procere pro_name1
as
v_para varchar2(200):=‘Im Danny';
begin
--without parameters case
pro_name2;
--with parameters case
pro_name3(v_para);
end;
Ⅵ oracle中运用存储过程调用函数
我也来做,以下程序经过测试,正常获取cost值,插入收银信息表正常!!
--创建表
CREATE TABLE member_info(
memberid NUMBER,
memberlevel VARCHAR2(20),
memberdis NUMBER)
;
CREATE TABLE cost_info(
memberid NUMBER,
spend FLOAT,
COST FLOAT)
;
INSERT INTO member_info VALUES(1,'A',0.1);
INSERT INTO member_info VALUES(2,'A',0.2);
INSERT INTO member_info VALUES(3,'A',0.3);
INSERT INTO member_info VALUES(4,'A',0.4);
--创建函数
CREATE OR REPLACE FUNCTION function_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE)
RETURN FLOAT
IS
v_cost cost_info.COST%TYPE;
v_memberdis member_info.MEMBERDIS%TYPE;
BEGIN
SELECT memberdis INTO v_memberdis FROM member_info WHERE memberid = p_memeberid;
v_cost := v_memberdis* p_spend;
RETURN v_cost;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
END ;
--创建procere
CREATE OR REPLACE PROCEDURE proc_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE)
IS
v_cost cost_info.COST%TYPE;
BEGIN
SELECT function_mem(p_memeberid,p_spend) INTO v_cost FROM al;
INSERT INTO cost_info VALUES(p_memeberid,p_spend,v_cost);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
----执行procere
BEGIN
proc_mem(1,1000);
END;
Ⅶ 存储过程中调用带返回值的函数
如果是ACCESS、MySQL、SQL 2000 数据库
SELECT * FROM tabel_ WHERE date < (now()-30)
数据库都自带很多函数的
Ⅷ oracle 中怎样从函数中调用函数,怎样从存储过程中调用函数
oracle中调用函数是十分简单的,存储过车调用函数也是一样的。例子如下:
createprocerepro_name1
as
v_paravarchar2(200):=‘ImDanny';
begin
--withoutparameterscase
pro_name2;
--withparameterscase
pro_name3(v_para);
end;
Ⅸ oracle如何在函数中调用存储过程
函数中调用存储过程报错,多半是由于函数的执行用户,没有授权insert 权限。
Ⅹ oracle 存储过程调用函数传变量参数
首先,请单独调试一下max_int这个函数,确保这个函数是正确的后,看一下调用时,name是否为其他类型的。从而导致异常的出现。