1. 程式人生 > >Oracle 使用IN OUT引數建立/呼叫儲存過程

Oracle 使用IN OUT引數建立/呼叫儲存過程

      對於IN引數而言,它可以接受一個值,但是不能在過程中修改這個值。而對於OUT引數而言,它呼叫過程時為空,在過程的執行中將為這引數指定一個值,並在執行結束後返回。而IN OUT 型別的引數同時具有IN引數和OUT引數的特性,在呼叫過程時既可以向該型別的引數傳入值,也可以從該引數接受值;而在過程的執行中既可以讀取又寫入該型別引數。

      #建立SWAP儲存過程交換兩個數的位置

SQL> create or replace procedure swap(
  2         num1_param in out number,
  3         num2_param in out number) is
  4         var_temp number;
  5  begin
  6    var_temp:=num1_param;
  7    num1_param:=num2_param;
  8    num2_param:=var_temp;
  9  end swap;
 10  /

過程已建立。

      # 呼叫SWAP過程完成資料之間的交換
SQL> set serveroutput on
SQL> declare
  2    var_max number:=23;
  3    var_min number:=45;
  4  begin
  5    if var_max < var_min then
  6       swap (var_max,var_min);
  7    end if;
  8    dbms_output.put_line(var_max || '>' || var_min);
  9  end;
 10  /
45>23

PL/SQL 過程已成功完成。


相關推薦

Oracle 使用IN OUT引數建立/呼叫儲存過程

      對於IN引數而言,它可以接受一個值,但是不能在過程中修改這個值。而對於OUT引數而言,它呼叫過程時為空,在過程的執行中將為這引數指定一個值,並在執行結束後返回。而IN OUT 型別的引數同

Oracle】-call 和 exec呼叫儲存過程的區別

在cmd.exe視窗執行命令sqlplus / as sysdba啟動sqlplus exec是sqlplus的命令,只能在sqlplus中使用。 call是sql命令,任何工具都可以使用,c

Oracle 儲存過程 inoutin out 引數的使用方法

1. in 引數 用於接收引數,在子程式內部,不能進行修改。預設的引數模式:in 案例: -- 宣告儲存過程 create or replace procedure pro_in(p_num in number) is begin dbms_output.put_line(p_n

hibernate4連線Oracleout引數儲存過程呼叫

程式碼如下: ProcedureCall pc=getCurrentSession().createStoredProcedureCall("P_USER_PUBLISH");     pc.registerParameter("in_username", String.

儲存過程+呼叫儲存過程+無/帶參的儲存過程+in引數+out引數+int out引數+為引數設定預設值

儲存過程 1儲存過程是一組為了完成特定功能的SQL語句集 2儲存過程編譯後儲存在資料庫中 3執行儲存過程比執行儲存過程封裝的SQl語句集更有效率 4不能指定declare關鍵字 5: OUT 和 IN OUT 的形參不能有預設表示式,只有in引數可以設

oracle PLSQL建立呼叫儲存過程

我是在PLSQL的command window裡使用的命令建表 drop table students; create table students(ID int,userName varchar(100),userpass varchar(100),userAge int)

Oracle建立呼叫儲存過程,函式,檢視

【1】Oracle建立和呼叫儲存過程1:寫一個簡單的例子刪除三級級聯 1)create or replace procedure ww_procedure_servicecheck (V_ID IN NUMBER)-- 定義輸入變數 IS begin    DELETE

在PL/SQL中建立呼叫儲存過程--oracle

在oracle10中寫好了儲存過程,程式碼如下:CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int, sE

[oracle]pl/sql in/out變數的使用和過程過程呼叫

--in/out 型別變數的使用 以及過程中呼叫過程,獲取out型別的返回值 --建一張表books --簡單過程一 插入一條記錄 createtable books(bookid number,bookname varchar(50),pubhouse varchar(50));    --簡

MyBatis呼叫帶有返回結果之output引數型別的儲存過程

儲存過程示例: ALTER PROCEDURE [WebApi_Login_SendPhoneCode ] ( @Action int, --1:查詢 2:新增一條記錄 @PhoneNo varchar(20), @Smscode varchar(10), @SendType

在PL/SQL Developer和oracle中如何新建儲存過程呼叫儲存過程

1、新建程式視窗,選擇Procedure 2、寫入procedure以後,要執行程式進行編譯 3、編譯成功以後,有三種方法可以執行procedure 第一種是在命令視窗執行exec procedure name SQL> exec procedure_name();

mybatis 呼叫儲存過程報錯 org.apache.ibatis.mapping.ParameterMode.IN

“` org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error resolving ParameterMode.

建立呼叫儲存過程:查詢Stu資料庫中某個同學的選修課程的資訊,包括學號,姓名,課程名稱,成績

CREATE PROCEDURE proc_select--建立儲存過程 @Sno char(10) output,--輸入輸出引數 @Sname varchar(20) out,--輸出引數 @Cno char(4) out,--輸出引數 @grade tinyint

java中使用mybatis呼叫儲存過程,拿到返回值(單引數返回值)

service業務層呼叫dao層 注意:返回值直接從物件裡獲取 不需要拿物件接收再獲取 dao.uspGetUser(userPO);//物件封裝了儲存過程的入參和出參 count = userPO.getCount(); //count 是儲存過程的返回值 dao層介面 pu

Oracle通過Job呼叫儲存過程

 這是本人第一次處理Oracle的儲存過程以及計劃任務(job)的事情;期間遇到了很多問題在此將這次試用job呼叫自己的編寫的儲存過程的過程中遇到的問題做一總結; 任務:實時採集系統會每5分鐘給中心繫統傳送一個流量資料,但是沒有給出累計流量資料; 1、編寫一個儲存過程W

SQL2008 連結Oracle 呼叫儲存過程

最近接觸了兩個專案都用到了SQL與Oracle資料互通,其中一個數據同步還要呼叫ORACLE中的儲存過程來執行相應的操作。 1. SQL連結ORACLE 都是視覺化的操作 如下圖: 紅色框選的是oracle的資料驅動,如果沒有這個驅動 那

在PL/SQL中呼叫儲存過程--oracle

在oracle10中寫好了儲存過程,程式碼如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int,

oracle呼叫儲存過程

儲存過程的呼叫 增加,修改,刪除的儲存過程呼叫 帶輸入引數的儲存過程呼叫 帶輸出引數的儲存過程的呼叫:此處以登入成功還是失敗為例.返回0 或者1 增加,修改,刪除的儲存過程呼叫

SQL Server 在多個數據庫中建立同一個儲存過程(Create Same Stored Procedure in All Databases)

一.本文所涉及的內容(Contents) 二.背景(Contexts)   在我的資料庫伺服器上,同一個例項下面掛載著許多相同結構的資料庫,他們為不同公司提供著服務,在許多時候我需要同時建立、修改、刪除一些物件,儲存過程就是其中一個,但是想要批量建立儲存,這有些特殊,下面就教你如何實現在多個數據庫中建

oracle工具pl/sql呼叫儲存過程的格式

pl/sql呼叫儲存過程的格式declarestart_date date:=sysdate-1; --  開始時間end_date   date:=sysdate;   --  結束時間 a2   varchar2(20):='12' --   a7   NUMBER:=