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

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

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

    無憂無鹵

    鳥在籠中,恨關羽不能張飛;人處世上,要八戒更需悟空

    [轉] %rowtype的幾個注意點收藏

    一、%rowtype只是指明引用的記錄的類型,但不保證NOT NULL約束

    我們知道使用%type和%rowtype可以分別指定引用的字段、記錄類型,但其中有一個特別需要注意的地方:

    %type和%rowtype都不保證NOT NULL約束。例如:

    DECLARE
      my_empno emp.empno%TYPE;  --emp.empno should not be null
      ...
    BEGIN
      my_empno := NULL;  - - this works well

    以上這段代碼在emp表的empno字段不能為空的情況下依然是可以執行的。


    二、%rowtype記錄的賦值

    用%ROWTYPE作聲明的時候是不可以進行初始化賦值的,但是有兩種方法可以一次性為所有字段賦值。

    方法一:假如兩個記錄類型的聲明引用了同一數據表或游標,那么它們就可以相互賦值,如:

    DECLARE
      dept_rec1 dept
    %ROWTYPE;
      dept_rec2 dept
    %ROWTYPE;
      
    CURSOR c1 IS   SELECT * FROM dept;
      dept_rec3 c1
    %ROWTYPE;

    BEGIN
      .. . 
      dept_rec1 :
    = dept_rec2  --this works well

    但是,如果一個類型是引用的是數據表而另一個引用的是游標的話,那么,即使它們表現的內容相同,也是不能相互賦值的

    dept_rec2 := dept_rec3; - - not allowed

    因為此處的dept_rec2引用是表,而dept_rec3引用的是游標,所以即便它們查詢的內容一樣也

    方法二:我們可以使用SELECT或FETCH語句將取得的數據賦給記錄。但在表或視圖中定義的字段名稱順序要與記錄中的名稱順序相同。

    DECLARE
      dept_rec dept
    %ROWTYPE;
      ...
    BEGIN
      
    SELECT * INTO dept_rec FROM dept WHERE deptno = 30;
      ...
    END

    但是,我們不能使用賦值語句來把字段列表中的值賦給記錄。所以,下面的語法形式是不允許的:

    record_name := (value1, value2, value3, ...); -- not allowed 


     三、
    使用別名

    從游標中取出的數據,如果游標定義中含有表達式時,我們就需要使用別名才能正確地為%ROWTYPE類型記錄賦值:

    DECLARE
      
    CURSOR my_cursor IS
        
    SELECT sal + NVL(comm, 0wages, ename FROM emp;
      my_rec my_cursor
    %ROWTYPE;
    BEGIN
      
    OPEN my_cursor;
      LOOP
        
    FETCH my_cursor
          
    INTO my_rec;
        
    EXIT WHEN my_cursor%NOTFOUND;
        
    IF my_rec.wages > 2000 THEN
          
    INSERT INTO temp VALUES (NULL, my_rec.wages, my_rec.ename);
        
    END IF;
      
    END LOOP;
      
    CLOSE my_cursor;
    END;

     

    posted on 2009-02-25 15:49 beyond 閱讀(691) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    <2009年2月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    1234567

    統計

    常用鏈接

    留言簿(1)

    隨筆檔案

    相冊

    搜索

    最新評論

    • 1.?re: 近期任務
    • 大哥 等著你的drools5翻譯呢 drools4把我搞死了 如果你有關于drools4的心得的話請指教 感覺自己使用的不是很好 望賜教 QQ:53816565 謝謝
    • --sunnidy
    • 2.?re: Mysql遷移到Oracle
    • 不錯,看樣子支持大多數數據庫遷移到oracle,不知道是否支持從oracle轉出?
    • --FastUnit

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲妇熟XXXX妇色黄| 中文字幕在线视频免费| 亚洲国产天堂在线观看| 四虎影视在线永久免费看黄| 91网站免费观看| 暖暖免费在线中文日本| yy一级毛片免费视频| 国产亚洲蜜芽精品久久| 亚洲人成www在线播放| 亚洲美女大bbbbbbbbb| 亚洲日韩欧洲无码av夜夜摸| 免费观看日本污污ww网站一区| 一二三四免费观看在线视频中文版| 无码av免费网站| a级毛片高清免费视频就| 丰满妇女做a级毛片免费观看| 亚洲jizzjizz少妇| 亚洲日韩中文字幕一区| 亚洲一卡2卡3卡4卡国产网站| 97亚洲熟妇自偷自拍另类图片| 亚洲AV无码久久寂寞少妇| 亚洲熟女少妇一区二区| 国产综合精品久久亚洲| 亚洲婷婷国产精品电影人久久| 免费萌白酱国产一区二区| 免费人成视频在线观看不卡| 在线观着免费观看国产黄| 免费看美女被靠到爽的视频| 成人A级毛片免费观看AV网站| 免费人成在线视频| 成全高清视频免费观看| 成年女人毛片免费播放视频m| 好爽…又高潮了免费毛片| 在线免费观看一区二区三区| 好爽…又高潮了免费毛片| 在线观看永久免费视频网站| 亚洲国产精品人人做人人爽| 国产成人高清亚洲| 国产国拍亚洲精品mv在线观看| 久久久综合亚洲色一区二区三区| 久久久婷婷五月亚洲97号色|