当前位置:首页 » 存储配置 » 存储过程调用函数

存储过程调用函数

发布时间: 2022-01-15 12:10:36

Ⅰ 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)

Ⅱ 存储过程中调用带返回值的函数

如果是ACCESS、MySQL、SQL 2000 数据库

SELECT * FROM tabel_ WHERE date < (now()-30)

数据库都自带很多函数的

Ⅲ 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;

Ⅳ mysql存储过程怎么调用自定义的函数

创建存储过程
mysql> delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql> create procere sp_test(IN pi_id int, OUT po_name varchar(10))
-> begin
-> select * from test.tb_test;
-> select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
-> end
-> $
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ; -- 恢复分号作为分隔终止符号

5.调用存储过程
mysql> set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql> call sp_test(1,@po_name);

Ⅳ 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中调用函数是十分简单的,存储过车调用函数也是一样的。例子如下:

createprocerepro_name1
as
v_paravarchar2(200):=‘ImDanny';
begin
--withoutparameterscase
pro_name2;
--withparameterscase
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;

Ⅷ oracle如何在函数中调用存储过程

函数中调用存储过程报错,多半是由于函数的执行用户,没有授权insert 权限。

Ⅸ oracle 存储过程调用函数传变量参数

首先,请单独调试一下max_int这个函数,确保这个函数是正确的后,看一下调用时,name是否为其他类型的。从而导致异常的出现。

热点内容
linux误删除目录恢复 发布:2024-11-15 21:41:13 浏览:286
手机密码忘了怎么修改 发布:2024-11-15 21:40:04 浏览:335
常用的外文数据库 发布:2024-11-15 21:37:22 浏览:9
vb软件加密 发布:2024-11-15 21:17:23 浏览:596
本地ip可以搭服务器吗 发布:2024-11-15 21:04:27 浏览:163
阿里巴巴python 发布:2024-11-15 20:56:25 浏览:783
博图脚本编辑 发布:2024-11-15 20:41:06 浏览:313
带密码的箱子钥匙在哪里 发布:2024-11-15 20:40:12 浏览:237
两个次梁相交怎么配置 发布:2024-11-15 20:27:35 浏览:374
android关机实现 发布:2024-11-15 20:26:42 浏览:57