當前位置:首頁 » 存儲配置 » 存儲過程調用函數

存儲過程調用函數

發布時間: 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是否為其他類型的。從而導致異常的出現。

熱點內容
為什麼安卓沒法下載神武4 發布:2024-11-15 23:46:18 瀏覽:335
巫師3和英雄聯盟哪個吃配置 發布:2024-11-15 23:46:10 瀏覽:805
qt文件加密 發布:2024-11-15 23:40:35 瀏覽:738
咸陽做腳本的 發布:2024-11-15 23:38:57 瀏覽:773
途觀與探岳哪個配置高 發布:2024-11-15 23:30:39 瀏覽:518
dhcp伺服器如何更新ip地址 發布:2024-11-15 23:18:40 瀏覽:126
ai清除緩存 發布:2024-11-15 23:12:38 瀏覽:603
電腦版我的世界如何退出伺服器 發布:2024-11-15 23:00:39 瀏覽:313
哪裡有存儲器零售商 發布:2024-11-15 22:55:42 瀏覽:47
手機如何設置鎖屏密碼個性 發布:2024-11-15 22:44:08 瀏覽:418