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

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

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

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    存儲過程

    Posted on 2009-02-16 19:30 啥都寫點 閱讀(369) 評論(0)  編輯  收藏 所屬分類: DB

    --demo1

    create or replace procedure proc_query_emp

    ( p_empno emp.empno%type)

    is

     v_emp emp%rowtype;

    begin

     select * into v_emp

     from emp where empno = p_empno;

     

     dbms_output.put_line(v_emp.empno);

     dbms_output.put_line(v_emp.ename);

     dbms_output.put_line(v_emp.sal);

    end;

    --demo2

    create or replace procedure proc_i_dept

    (p_deptno dept.deptno%type,

     p_dname dept.dname%type,

     p_loc dept.loc%type

    )

    is

    begin

     insert into dept(deptno,dname,loc)

     values(p_deptno,p_dname,p_loc);

     commit;

    end;

    --demo3

    create or replace procedure proc_test_par

    ( p_i in varchar2,

     p_j out varchar2,

     p_m in out varchar2

    )

    is

    begin

     p_j := '2';

     dbms_output.put_line(p_i);

     dbms_output.put_line(p_j);

      dbms_output.put_line(p_m);

    end;

    --demo4

    --step1

    create table pos_info

    ( pid char(3),

     pnum number

    )

    insert into pos_info values('001',0);

    insert into pos_info values('002',0);

    create table sales

    ( sid char(16),

     sdate date

    )

    --step2

    create or replace procedure proc_i_sales

    (p_pid char)

    is

     v_pnum pos_info.pnum%type;

    begin

     select pnum into v_pnum

     from pos_info where pid = p_pid;

     

     insert into sales(sid,sdate)

     values(p_pid || to_char(sysdate,'YYYYMMDD')

                   || lpad(v_pnum + 1,5,'0'),sysdate);

            

     update pos_info

     set pnum = pnum + 1

     where pid = p_pid;

     

     commit;        

    end;

    --demo5

    create or replace procedure proc_getnum

    ( p_pid in pos_info.pid%type,

     p_pnum out pos_info.pnum%type

    )

    is

    begin

     select pnum into p_pnum

     from pos_info where pid = p_pid;

    end;

    create or replace procedure proc_new_sales

    (p_pid char)

    is

     v_pnum pos_info.pnum%type;

    begin

     

     proc_getnum(p_pid,v_pnum);

     

     insert into sales(sid,sdate)

     values(p_pid || to_char(sysdate,'YYYYMMDD')

                   || lpad(v_pnum + 1,5,'0'),sysdate);

            

     update pos_info

     set pnum = pnum + 1

     where pid = p_pid;

     

     commit;        

    end;

    --demo6

    create or replace function fun_empsal

    ( p_empno emp.empno%type)

    return varchar2

    is

     v_emp emp%rowtype;

    begin

     select * into v_emp

     from emp where empno = p_empno;

     

     if v_emp.sal >= 3000 then

        return 'OK';

     else

        return 'NO';  

     end if; 

     

    end;

    --demo7

    --創建在dept表中插入和刪除一個記錄的數據包,它且有一個函數(返回插入或刪除的部門名稱)和兩個過程。然后調用包。

    CREATE OR REPLACE PACKAGE deptpack

    AS

     PROCEDURE inser(dno IN NUMBER,NAME IN VARCHAR2,location IN VARCHAR2);

     PROCEDURE de(dno IN NUMBER);

     FUNCTION getdname(num IN NUMBER) RETURN VARCHAR2;

    END deptpack;

    CREATE OR REPLACE PACKAGE BODY deptpack

    AS

     PROCEDURE inser(dno IN NUMBER,NAME IN VARCHAR2,location IN VARCHAR2)

     AS

     BEGIN

        INSERT INTO dept VALUES(dno,NAME,location);

        dbms_output.put_line('1 record inserted!');

     END inser;

     PROCEDURE de(dno IN NUMBER)

     AS

     BEGIN

        DELETE FROM dept WHERE deptno=dno;

     END de;

     FUNCTION getdname(num IN NUMBER)

     RETURN VARCHAR2

     AS

        vname VARCHAR2(10);

     BEGIN

        SELECT dname INTO vname FROM dept WHERE deptno=num;

        RETURN vname;

     EXCEPTION

        WHEN no_data_found THEN

        dbms_output.put_line('No such deptno exists!');

     END getdname;

    END deptpack;



                                                                                                           --    學海無涯
            


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成年私人影院免费视频网站| 久久综合AV免费观看| 亚洲五月激情综合图片区| 无码人妻精品中文字幕免费东京热| 亚洲人成综合在线播放| 国产免费av一区二区三区| 不卡视频免费在线观看| 亚洲人成77777在线播放网站不卡| 亚洲Aⅴ无码一区二区二三区软件| 最近国语视频在线观看免费播放 | 亚洲无砖砖区免费| 四虎永久免费观看| 蜜桃成人无码区免费视频网站| 亚洲欧美精品午睡沙发| 亚洲爆乳精品无码一区二区三区| 毛片免费在线观看网站| 免费成人在线视频观看| 亚洲日本天堂在线| 亚洲第一中文字幕| 亚洲国产精品自产在线播放| 全免费毛片在线播放| 国产麻豆一精品一AV一免费| 国产亚洲精品成人久久网站| 亚洲成电影在线观看青青 | 亚洲色成人WWW永久在线观看| 亚洲精品一品区二品区三品区 | 7777久久亚洲中文字幕蜜桃| 一本久到久久亚洲综合| 免费精品人在线二线三线区别| 免费网站看av片| xxxx日本在线播放免费不卡| 亚洲午夜福利在线视频| 337p日本欧洲亚洲大胆精品555588 | 69成人免费视频| 野花香高清在线观看视频播放免费| 色五月五月丁香亚洲综合网| 亚洲av永久无码嘿嘿嘿| 亚洲永久永久永久永久永久精品| 国产乱辈通伦影片在线播放亚洲| 国产精品免费视频播放器| 男男AV纯肉无码免费播放无码|