亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于在oracle中in和out用法?求解釋

關于在oracle中in和out用法?求解釋

嚕嚕噠 2021-11-17 20:11:30
oracle中in和out究竟在什么時候用啊?有點理不清頭緒,請指點!還有:create or replace procedure change_sal(v_ename in varchar2,v_sal in number,v_job out varchar2,v_dname out varchar2)isv_empno emp.empno%type;begin... ...end;變量為什么要分開在頭部和is部分兩個地方聲明呢?有什么本質的區別嗎?
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

開頭部分聲明的是這個存儲過程的參數,is部分聲明的是存儲過程內部使用的變量。相當于程序中函數的參數和函數的內部變量的關系。

查看完整回答
反對 回復 2021-11-23
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

前邊幾個是變量,就是in out那一堆
相當于你輸入和輸出的參數,而且輸入和輸出的參數只能每次調用一個
一個輸入參數你不可能一下輸入兩個
下邊is后邊那個
%TYPE屬性
在PL/SQL中可以將變量和常量聲明為內建或用戶定義的數據類型,以引用一個列名,同時繼承他的數據類型和大小。這種動態賦值方法是非常有用的,比如變量引用的列的數據類型和大小改變了,如果使用了%TYPE,那么用戶就不必修改代碼,否則就必須修改代碼。
例:
v_empno SCOTT.EMP.EMPNO%TYPE;
v_salary EMP.SALARY%TYPE;
不但列名可以使用%TYPE,而且變量、游標、記錄,或聲明的常量都可以使用%TYPE。這對于定義相同數據類型的變量非常有用。
其實說白了,就是后邊is定義的那個已經不是常規的變量了,相當于一個數組或者游標



查看完整回答
反對 回復 2021-11-23
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

oracle 過程中定義了in、out、in out三種參數模式,每個參數可以選擇其一。
  in 是參數的默認模式,這種模式就是在程序運行的時候已經具有值,在程序體中值不會改變;
  out模式定義的參數只能在過程體內部賦值,表示該參數可以將某個值傳遞回調用他的過程;
  in out 表示高參數可以向該過程中傳遞值,也可以將某個值傳出去 。
  舉個例子
  create or replace procedure update_price(
  p_product_id in NUMBER,
  p_factor in NUMBER)
  AS
  .....
  你在引用這個過程的時候給參數傳入值
  exexute update_price(2,2.5);
  這是定義的2個參數就得到了值,in模式下值不能變。



查看完整回答
反對 回復 2021-11-23
  • 3 回答
  • 0 關注
  • 431 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號