<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

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品午夜国产va久久| 亚洲香蕉免费有线视频| 亚洲日本国产综合高清| 亚洲精品二区国产综合野狼| 浮力影院第一页小视频国产在线观看免费 | 高清在线亚洲精品国产二区| 成年人免费的视频| 青青草原1769久久免费播放| 特级无码毛片免费视频| 亚洲乱码无人区卡1卡2卡3| 亚洲欧洲日产韩国在线| 亚洲VA成无码人在线观看天堂| 老司机亚洲精品影视www| 小小影视日本动漫观看免费| 永久免费av无码网站韩国毛片| 午夜免费福利片观看| 在线观看免费无码视频| 四虎一区二区成人免费影院网址| 亚洲国产精品无码久久| va天堂va亚洲va影视中文字幕| 亚洲无成人网77777| 亚洲av激情无码专区在线播放| 亚洲精品国精品久久99热一| 亚洲中文字幕视频国产| 亚洲精品人成无码中文毛片| 免费萌白酱国产一区二区| 国产高清视频在线免费观看| 无人在线观看免费高清视频| 1000部国产成人免费视频| xx视频在线永久免费观看| 99久久精品免费视频| 99久久免费看国产精品| 99久久免费观看| 国产国产人免费视频成69堂| 18女人水真多免费高清毛片| 色播精品免费小视频| 国产麻豆视频免费观看| 在线免费观看毛片网站| 亚洲国产高清人在线| 久久精品国产亚洲av麻豆| 亚洲av日韩av天堂影片精品|