當前位置:首頁 » 服務存儲 » 存儲過程調用函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程調用函數

發布時間: 2022-01-22 06:38:40

sqlserver存儲過程如何調用自定義函數

返回單個值的函數, 可以當變數用, 比如 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是否為其他類型的。從而導致異常的出現。