1. 程式人生 > >oracle儲存過程返回值

oracle儲存過程返回值

oracle的儲存過程只要返回的值是指定的型別就行了

有的時候我們會看到這種寫法的儲存過程

create or replace function func_add(num1 in number,num2 in number)
return number is r number(3);
num3 number(3);
begin
num3:=num1+num2;
r:=num3;
return(r);
end;

開始一看似乎返回值的時候必須要返回r才對,實際上只是寫法的問題我們可以修改上面儲存過程的格式如下:

create or replace function func_add(num1 in number,num2 in number)
return number 

is 

r number(3);
num3 number(3);
begin
num3:=num1+num2;
r:=num3;
return(r);
end;

r和num3只是臨時使用的變數而已,你可以返回它們也可以返回其他只要是num型別的值就可以。

如下:

create or replace function cc(i in number)

return number
is
i1 number;
i2 number;
i3 number;

begin

if i=1 then
i1:=i;
return i1;
elsif i=2 then
i2:=i;
return i2;
elsif i=3
i3:=i;

return i3;

else

return 0;

end if;


end;

相關推薦

oracle儲存過程返回

oracle的儲存過程只要返回的值是指定的型別就行了 有的時候我們會看到這種寫法的儲存過程 create or replace function func_add(num1 in number,num2 in number) return number is r numbe

Java程式碼獲取oracle儲存過程返回

package cn.itcast.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.

C#呼叫ORACLE儲存過程返回結果集

Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result

SQL Server 儲存過程返回的幾種方式

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC int exec @RC=

SQL Server 儲存過程返回彙總

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC in

oracle 儲存過程返回結果集 (轉載)

好久沒上來了, 難道今天工作時間稍有空閒, 研究了一下oracle儲存過程返回結果集.        配合oracle臨時表, 使用儲存過程來返回結果集的資料讀取方式可以解決海量資料表與其他表的連線問題. 在儲存過程中先根據過濾條件從海量資料表中選出符合條件的記錄並存放到臨

SqlServer獲取儲存過程返回的例項

public static int User_Add(User us)      {          int iRet;          SqlConnection conn = new SqlConnection(Conn_Str);          SqlCommand cmd = new Sq

從MSSQL儲存過程返回

儲存過程: CREATE PROCEDURE UserSelect@account varchar(50),@aa int output ASset @aa=5GO C#程式: CmdObj.Parameters["@aa"].Direction = ParameterDirection.Output;Cmd

mybatis呼叫Oracle儲存過程返回結果集

在開發中,有時需要關聯幾張表來進行一些複雜的計算,此時可採用建立一張臨時表,將每次的資料計算後先存入臨時表,然後通過Oracle的遊標返回。 在mybatis中的呼叫如下: //呼叫語法格式,需要構造一個resultMap,用來接收返回的結果集 <select id

mybatis呼叫oracle儲存過程 返回sys_refcursor

Map<String, Object> map = new HashMap<String, Object>(); map.put("id", "0"); mapper.selectPosBy(map); return (List) map

sql server 呼叫儲存過程返回

1.OUPUT引數返回值 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int , @o_id bigint OUTPUT )AS BEGIN SET NOCOUNT ON; BEGIN INSERT

儲存過程 返回 procedure return values

儲存過程有三種返回:  1. 用return返回int型資料  2. 用返回引數返回結果,可以返回各種資料型別(通過遊標來迴圈查詢結果每一行)  3. 直接在儲存過程中用select返回結果集,可以是任意的select語句,這意味著是任意的返回結果集 例子:1

oracle 儲存過程返回 結果集 table形式

--sys_refcursor 和 cursor 優缺點比較優點比較優點一:sys_refcursor,可以在儲存過程中作為引數返回一個table格式的結構集(我把他認為是table型別,容易理解,其實是一個遊標集), cursor 只能用在儲存過程,函式,包等的實現體中,不

使用oracle 儲存過程返回集合

1 所謂返回集合是返回遊標 集合可以不使用臨時表,使用oracle自定義型別 2 可以先建一個object的type,再建一個type 型別為table 如:CREATE OR REPLACE TYPE Dis_WGM_dayreport_type as objec

SSM-Mybatis呼叫Oracle儲存過程返回結果集(遊標)示例

1.建立一個包 此處建立一個包,是為了建立儲存過程時,用遊標作為out輸出引數時宣告為遊標型別用的. --建立一個包 create or replace package types as type empListCursor is ref cursor

Oracle 儲存過程返回陣列記錄集

剛學,耗了兩天除錯,寒一個。 儲存過程: --建立返回物件型別CREATE TYPE T_DEPT_NUM_O1 AS OBJECT(dept_id NUMBER ,num NUMBER );/--建立臨時表CREATE type T_DEPT_NUM_T1 as tabl

mybatis呼叫oracle儲存過程返回遊標 讀取到java的List

mapper: <select id="testP" statementType="CALLABLE" > {call P_TEST(#{v_cursor, mode=OUT, jdbcType=CURSOR})} </select> ja

再論c#獲取儲存過程返回(包括SqlSugar)

  其實這個問題好多年以前研究過: https://blog.csdn.net/xpnew/article/details/6909902 最近因為需要統計日結月結,給同事寫了一套呼叫儲存過程的程式碼。同時因為專案ORM層是通過SqlSugar實現的,就又研究了一下SqlSugar呼叫儲存過程

mybatis 呼叫oracle儲存過程,傳參、返回遊標的獲取--示例

1,dao層程式碼 Integer currentlq_fsx = getSqlSession().selectOne("lqMapper.maxscore"); Map<String,Object> map = new HashMap<String,O

Java執行Oracle儲存過程並接收返回

Java執行Oracle儲存過程並接收多個返回值(集合/數值) Java程式碼: package com.pure.util; import java.sql.Connection; import java.sql.DriverManager; import java.s