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

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

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

    無(wú)憂無(wú)鹵

    鳥(niǎo)在籠中,恨關(guān)羽不能張飛;人處世上,要八戒更需悟空

    [轉(zhuǎn)] %rowtype的幾個(gè)注意點(diǎn)收藏

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

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

    %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字段不能為空的情況下依然是可以執(zhí)行的。


    二、%rowtype記錄的賦值

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

    方法一:假如兩個(gè)記錄類(lèi)型的聲明引用了同一數(shù)據(jù)表或游標(biāo),那么它們就可以相互賦值,如:

    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

    但是,如果一個(gè)類(lèi)型是引用的是數(shù)據(jù)表而另一個(gè)引用的是游標(biāo)的話,那么,即使它們表現(xiàn)的內(nèi)容相同,也是不能相互賦值的

    dept_rec2 := dept_rec3; - - not allowed

    因?yàn)榇颂幍膁ept_rec2引用是表,而dept_rec3引用的是游標(biāo),所以即便它們查詢的內(nèi)容一樣也

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

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

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

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


     三、
    使用別名

    從游標(biāo)中取出的數(shù)據(jù),如果游標(biāo)定義中含有表達(dá)式時(shí),我們就需要使用別名才能正確地為%ROWTYPE類(lèi)型記錄賦值:

    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 閱讀(692) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

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

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    相冊(cè)

    搜索

    最新評(píng)論

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

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久九九AV免费精品| 亚洲AV无码国产在丝袜线观看| 成人片黄网站色大片免费观看APP| 亚洲乱码中文字幕在线| 亚洲AV人人澡人人爽人人夜夜| 又爽又黄无遮挡高清免费视频| 全免费毛片在线播放| 久久精品视频免费看| www.xxxx.com日本免费| 亚洲精品乱码久久久久久蜜桃图片 | 色www永久免费网站| 在线观看亚洲视频| 亚洲一卡一卡二新区无人区| 亚洲欧洲国产视频| 亚洲好看的理论片电影| 狠狠亚洲婷婷综合色香五月排名| 国产成人免费一区二区三区| 在线观看特色大片免费视频| 中文字幕在线观看免费视频| 最近免费字幕中文大全| 特级做a爰片毛片免费看| 亚洲JIZZJIZZ妇女| 亚洲精品无码久久久久秋霞| 亚洲国产成人综合| 亚洲精品电影天堂网| 77777_亚洲午夜久久多人| 亚洲国产一区二区a毛片| 亚洲人成人一区二区三区| 亚洲黄片毛片在线观看| 亚洲国产精品无码久久青草| 又爽又高潮的BB视频免费看| 免费在线观看你懂的| 亚洲AⅤ优女AV综合久久久| 免费jjzz在在线播放国产| 亚洲VA综合VA国产产VA中| 免费人成视网站在线观看不卡| 免费在线不卡视频| 相泽亚洲一区中文字幕| 亚洲综合精品网站| 国产AV无码专区亚洲AVJULIA| 亚洲精品你懂的在线观看|