<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

    函數(shù)調(diào)用限制
    1、SQL語(yǔ)句中只能調(diào)用存儲(chǔ)函數(shù)(服務(wù)器端),而不能調(diào)用客戶端的函數(shù)
    2、SQL只能調(diào)用帶有輸入?yún)?shù),不能帶有輸出,輸入輸出函數(shù)
    3、SQL不能使用PL/SQL的特有數(shù)據(jù)類型(boolean,table,record等)
    4、SQL語(yǔ)句中調(diào)用的函數(shù)不能包含INSERT,UPDATE和DELETE語(yǔ)句

    1.function函數(shù)的語(yǔ)法如下:

          create or replace function function_name (

           argu1 [mode1] datatype1, --定義參數(shù)變量

           argu2 [mode2] datatype2 --定義參數(shù)變量

       ) return datatype --定義返回的數(shù)據(jù)類型

      is 

      begin

      end;

    執(zhí)行 var v1 varchar2(100)
          exec :v1:=function_name

    2.不帶任何參數(shù)的定義

    create or replace function get_user 

    return varchar2 

    is 

    Result varchar2(50); --定義變量

    begin 

    select username into Result from user_users; 

    return(Result); --返回值

    end get_user;

    3.帶有in參數(shù)的

    create or replace function get_sal(

    empname in varchar2

    ) return number 

    is 

    Result number; 

    begin 

    select sal into Result from emp where ename=empname; 

    return(Result); 

    end;

    執(zhí)行: SQL> var sal number
    SQL> exec :sal:=get_sal('scott');

    4.帶out參數(shù)的

    create or replace function get_info(

    e_name varchar2,

    job out varchar2

    ) return number 

    Is

    Result number; 

    begin 

    select sal,job into Result,job from emp where ename=e_name;
    return(Result);
    end;

    執(zhí)行: SQL> var job varchar2(20)
    SQL> var dname varchar2(20)
    SQL> exec :dname:=get_info('SCOTT',:job)

    5.帶in out參數(shù)的

    6.函數(shù)調(diào)用舉例

    create or replace function f_sys_getseqid(
        v_seqname           IN VARCHAR2,
        v_provincecode      IN VARCHAR2    --省編碼
    ) return Varchar2
    IS
        iv_date             VARCHAR2(8);
        iv_seqname          VARCHAR2(50);
        iv_sqlstr           VARCHAR2(200);
        iv_seq              VARCHAR2(8);
        iv_seqid            VARCHAR2(16);
    BEGIN
        iv_seqname := LOWER(TRIM(v_seqname));
        iv_sqlstr := 'SELECT '||iv_seqname||'.nextval FROM DUAL';
        EXECUTE IMMEDIATE iv_sqlstr INTO iv_seq;--執(zhí)行動(dòng)態(tài)的sql語(yǔ)句,執(zhí)行相似的一組語(yǔ)句
        IF v_seqname = 'SEQ_FUNCROLE_ID' THEN
          iv_seqid:= 'ESS' || LPAD(iv_seq,5,'0');
        ELSE
          SELECT substrb(v_provincecode,1,2)||TO_CHAR(SYSDATE,'yymmdd') INTO iv_date FROM DUAL;
          iv_seqid:= iv_date || LPAD(iv_seq,8,'0');
        END IF;
        RETURN iv_seqid;
    EXCEPTION
        WHEN OTHERS THEN
        RETURN NULL;
    END;

      調(diào)用方式如下:

        SELECT TO_NUMBER(F_SYS_GETSEQID('SEQ_TERMTRADE_ID', V_PROVINCE_CODE)) INTO V_BATCH_ID FROM DUAL;

       EXECUTE IMMEDIATE的說(shuō)明:執(zhí)行動(dòng)態(tài)的sql語(yǔ)句。

    posted on 2012-08-12 20:42 abin 閱讀(33342) 評(píng)論(2)  編輯  收藏 所屬分類: oracle

    Feedback

    # re: oracle function用法 2015-06-08 11:04 工單
    版本  回復(fù)  更多評(píng)論
      

    # re: oracle function用法 2016-06-21 09:49 hh7
    check  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 久久久久久亚洲AV无码专区| 亚洲高清无码专区视频| 在线精品一卡乱码免费| 亚洲一区免费视频| 免费成人激情视频| 无码免费午夜福利片在线 | 一级毛片免费不卡| 人人爽人人爽人人片av免费| yellow视频免费看| 日批视频网址免费观看| 久久99青青精品免费观看| 亚欧日韩毛片在线看免费网站| 最近免费最新高清中文字幕韩国| 最近免费中文字幕mv电影| 免费三级毛片电影片| 免费毛片在线看片免费丝瓜视频| 免费视频中文字幕| 又粗又黄又猛又爽大片免费| 亚洲国产中文v高清在线观看| 亚洲精品无码高潮喷水在线| 久久精品国产亚洲av影院| 亚洲五月综合网色九月色| 亚洲AV永久无码精品网站在线观看| 免费一区二区无码视频在线播放 | 亚洲AV无码一区二三区| 亚洲 自拍 另类小说综合图区| 亚洲男人的天堂一区二区| 亚洲精品中文字幕乱码三区| 亚洲视频一区网站| 亚洲av综合av一区二区三区 | 亚洲高清乱码午夜电影网| 边摸边脱吃奶边高潮视频免费| 国产无遮挡又黄又爽免费网站| 在线观看的免费网站无遮挡| 免费看少妇作爱视频| 中文字幕亚洲图片| jlzzjlzz亚洲jzjzjz| 农村寡妇一级毛片免费看视频| 久久免费视频网站| 韩国二级毛片免费播放| 中文字幕亚洲无线码|