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

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

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

    posts - 84,  comments - 54,  trackbacks - 0

    1、?編寫一個程序塊,從emp表中顯示名為’SMITH’的雇員的薪水和職位。
    ?SET SERVEROUTPUT ON
    ?declare
    ?v_sal emp.sal%type;
    ?v_job emp.job%type;

    ?begin
    ?select sal,job into v_sal,v_job from emp where ename = 'SMITH';
    ?DBMS_OUTPUT.put_line(v_sal||' '||v_job);
    ?END;

    提示用戶輸入'SMITH'
    ?SET SERVEROUTPUT ON
    ?declare
    ?v_sal emp.sal%type;
    ?v_job emp.job%type;
    ?v_name emp.ename%type:='&v_name';--此處在外面加入單引號,這樣在輸入的時候就直接可以輸入字符串了

    ?begin
    ?select sal,job into v_sal,v_job from emp where ename = v_name;
    ?DBMS_OUTPUT.put_line(v_sal||' '||v_job);
    ?END;

    2、?編寫一個程序塊,接受用戶輸入的一個部門號,從dept表中顯示該部門的名稱與所在的位置。
    ?SET SERVEROUTPUT ON
    ?declare
    ?v_dname? dept.dname%type;
    ?v_loc? dept.loc%type;
    ?v_deptno? dept.deptno%type:=&v_deptno;

    ?begin
    ?select dname,loc into v_dname,v_loc from dept where deptno = v_deptno;
    ?DBMS_OUTPUT.put_line(v_dname||'+'||v_loc);

    ?EXCEPTION
    ?WHEN no_data_found THEN
    ?DBMS_OUTPUT.put_line('您輸入的部門號不存在!');

    ??end;

    3、?接受兩個數相除并且顯示結果,如果第二個數為0,則顯示消息“除數不能為0”。

    ?SET SERVEROUTPUT ON
    ?DECLARE
    ?v_divsor REAL:=&v_divsor;--除數
    ?v_dividend REAL:=&v_dividend;--被除數
    ?v_result REAL;
    ?
    ?BEGIN
    ?v_result := v_dividend/v_divsor;
    ?DBMS_OUTPUT.put_line('結果為'||v_result);

    ?EXCEPTION
    ?WHEN ZERO_DIVIDE THEN
    ?DBMS_OUTPUT.put_line('除數不能為零');
    ?END;

    4、?編寫一個程序塊,接受一個雇員名,從emp表中顯示該雇員的工作崗位與薪水,若輸入的雇員名不存在,顯示“該雇員不存在”信息。

    ?SET SERVEROUTPUT ON
    ?DECLARE
    ?v_job emp.job%type;
    ?v_sal emp.sal%type;
    ?v_ename emp.ename%type:='&v_ename';--輸入員工姓名

    ?BEGIN
    ?select job,sal into v_job,v_sal from emp where ename = v_ename;
    ?DBMS_OUTPUT.put_line('員工工作'||v_job||'員工薪水'||v_sal);

    ?EXCEPTION
    ?WHEN NO_DATA_FOUND THEN
    ?DBMS_OUTPUT.put_line('您要查找的員工不存在.');?

    ?END;?

    5、?編寫一個程序塊,利用%type屬性,接受一個雇員號,從emp表中顯示該雇員的整體薪水(即,薪水+傭金)

    ?SET SERVEROUTPUT ON
    ?DECLARE
    ?v_empno emp.empno%type:=&v_empno;--輸入員工編號
    ?v_saladdcomm emp.sal%type;
    ?v_sal emp.sal%type;
    ?v_comm?emp.comm%type;
    ?
    ?BEGIN
    ?select?sal,comm into v_sal,v_comm from emp where empno = v_empno;

    ?v_saladdcomm := v_sal + NVL(v_comm,0);--這里需要用到NVL函數,如果v_comm為NULL的話則設為0
    ????????????????????????????????????????????????????????????????????--否則如果v_comm為空的話,計算出來的值則為空???????????????????????????

    ?DBMS_OUTPUT.put_line(v_empno||'的整體薪水是:'||v_saladdcomm);

    ?EXCEPTION
    ?WHEN NO_DATA_FOUND THEN
    ?DBMS_OUTPUT.put_line('您要查找的員工編號不存在!');

    ?END;

    posted on 2006-09-05 21:42 JavaCoffe 閱讀(1100) 評論(1)  編輯  收藏 所屬分類: Oralce&&PL/SQL


    FeedBack:
    # re: PLSQL小例子
    2006-09-09 16:13 | 徐海東
    6、 編寫一個程序塊,將emp表中前5人的名字顯示出來。

    不知道不使用游標的方法能否做出來

    以下為使用游標的方法

    1>使用for 循環實現
    DECLARE
    CURSOR c_emp IS select ename from emp where rownum < 6;

    BEGIN

    FOR v_emp IN c_emp LOOP
    DBMS_OUTPUT.put_line(v_emp.ename);
    END LOOP;

    END;

    2>使用while方法
    DECLARE
    CURSOR c_emp IS select ename from emp where rownum < 6;
    v_ename emp.ename%type;
    v_count number:=1;

    BEGIN
    OPEN c_emp;
    while v_count < 6 loop

    fetch c_emp into v_ename;
    DBMS_OUTPUT.put_line(v_ename);
    v_count := v_count+1;

    end loop;
    close c_emp;
    end;

    使用while的第二種用法

    DECLARE
    CURSOR c_emp IS select ename from emp where rownum < 6;
    v_ename emp.ename%type;

    BEGIN
    OPEN c_emp;
    fetch c_emp into v_ename;

    --剛開始要讓游標向下移動一行接下來才能判斷是否已經
    --取道到一行紀錄

    while c_emp%found loop

    DBMS_OUTPUT.put_line(v_ename);
    fetch c_emp into v_ename;

    end loop;

    close c_emp;
    end;
    3>使用LOOP循環的方法
    set serveroutput on
    DECLARE
    CURSOR c_emp IS select ename from emp where rownum < 6;
    v_ename emp.ename%type;

    BEGIN
    OPEN c_emp;

    LOOP
    fetch c_emp into v_ename;
    DBMS_OUTPUT.put_line(v_ename);
    EXIT WHEN c_emp%notfound;
    END LOOP;

    CLOSE c_emp;
    END;

    7、 某公司要根據雇員的職位來加薪,公司決定按如下列加薪結構處理:
    Designation Raise
    Clerk 500
    Salesman 1000
    Analyst 1500
    Otherwise 2000
    編寫一個程序塊,接受一個雇員名,從emp表中實現上述加薪處理。
    set serveroutput on
    DECLARE
    v_ename emp.ename%type:='&v_ename';
    v_job emp.job%type;
    v_addSal emp.sal%type;--額外增加的工資
    v_sal emp.sal%type;

    BEGIN
    select job into v_job from emp where ename = v_ename;
    select sal into v_sal from emp where ename = v_ename;

    IF v_job = 'Clerk' then

    v_addSal := 500;
    elsif v_job = 'Salesman' then
    v_addSal := 1000;
    elsif v_job = 'Analyst' then
    v_addSal := 1500;
    else
    v_addSal := 2000;

    END IF;

    v_addSal := v_addSal + v_sal;
    UPDATE emp SET sal = v_addSal where ename = v_ename;
    END;

    8、 使用For循環游標,接受一個部門號,從emp表中顯示該部門的所有雇員的姓名,工作和薪水。
    set serveroutput on
    DECLARE
    v_deptno emp.deptno%type:=&v_deptno;
    v_ename emp.ename%type;
    v_job emp.job%type;
    v_sal emp.sal%type;

    CURSOR c_emp IS select ename,job,sal from emp where deptno = v_deptno;


    BEGIN
    DBMS_OUTPUT.put_line('deptno'||' '||'ename'||' '||'job'||' '||'sal');
    for v_emp IN c_emp LOOP
    DBMS_OUTPUT.put_line(v_deptno||' '||v_emp.ename||' '||v_emp.job||' '||v_emp.sal);
    END LOOP;

    END;  回復  更多評論
      
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(5)

    隨筆分類(80)

    收藏夾(1)

    最新隨筆

    積分與排名

    • 積分 - 58056
    • 排名 - 896

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲国产精品无码久久一线| 国产传媒在线观看视频免费观看| 国产aⅴ无码专区亚洲av麻豆 | 日本视频一区在线观看免费| 久久精品国产精品亚洲色婷婷| 中文字幕无码免费久久9一区9| 亚洲视频在线一区二区| 一级A毛片免费观看久久精品 | 女人与禽交视频免费看| 亚洲国产欧美一区二区三区| 国产精品黄页在线播放免费| 久久亚洲精品无码av| 亚洲人成无码www久久久| 久久免费香蕉视频| 亚洲一区二区三区AV无码| 中国性猛交xxxxx免费看| 国产av无码专区亚洲av桃花庵| 久久久久久久99精品免费观看| 亚洲精品无码不卡| 久九九精品免费视频| 亚洲另类自拍丝袜第五页| 亚洲国产午夜中文字幕精品黄网站 | 人人狠狠综合久久亚洲| 亚洲人成国产精品无码| 免费精品久久天干天干| 亚洲毛片无码专区亚洲乱| 成人黄18免费视频| 一级毛片aa高清免费观看| 亚洲AV中文无码乱人伦下载| 无码少妇一区二区浪潮免费| 老湿机一区午夜精品免费福利| 亚洲va中文字幕无码久久不卡| 国产一卡二卡四卡免费| 美女18毛片免费视频| 亚洲国产精品lv| 在线观看人成视频免费| 在线看片免费人成视频久网下载 | 亚洲国产精品一区二区久| 国产又粗又猛又爽又黄的免费视频| 美女被免费网站91色| 亚洲娇小性xxxx|