關於 Oracle NULL欄位和PL./SQL執行實驗

來源:互聯網
上載者:User

關於 Oracle NULL欄位和PL./SQL執行實驗

今日有針對Oracle NULL值有了相關實驗. 對NULL 值插入的討論。

1, PL/SQL 中可以執行插入''或者NULL 的操作, 前提是欄位允許為空白.

2, 可以對NULL進行一系列資料庫運算. 如:

    SELECT ROUND(TO_NUMBER(MAX(A.IN_STATION_TIME)-SYSDATE))*24 FROM SFISM4.R_WIP_TRACKING_T A WHERE

      A.IN_STATION_TIME IS NULL

總結: 相應TO_NUMBER(NULL)也是可行, MAX 也是可行得,沒有問題.

3, 迴歸主題, SQL 原本的樣子要做成這個樣:

  INSERT INTO SFISM4.R_DT_PCB_OVERTIME_T F

    (F.SERIAL_NUMBER,

    F.MODEL_NAME,

    F.LINE_NAME,

    F.PRODUCTION_TIME,

    F.INTERCEPT_TIME,

    F.EXPRIATUION_HOUR,

    F.STATE_FLAG,

    F.SEND_USER)

    (SELECT 'COCO111111111',

            'NIUBI1',

            '15555',

            NVL(NULL, MAX(A.IN_STATION_TIME)),

            SYSDATE,

            NVL(ROUND(TO_NUMBER(MAX(A.IN_STATION_TIME)-SYSDATE))*24, '0'),

            '1',

            '1'

      FROM SFISM4.R_WIP_LOG_T E

      WHERE E.SERIAL_NUMBER = 'COCO111111111') AND E.GROUP_NAME = 'SMTS')

結果, 部分執行後, 一條也不會插入. Insert 操作, 根據子查詢, 如果子查詢為空白, 那麼什麼都不會插入.

4, 高潮來了-- 去掉子查詢中的WHERE後, 即SELECT 條件都是肯定有值後, 居然將表E中全部記錄插入. 啊, 幸虧是測試庫, 資料量不大, 但是也執行了5s. 好吧, 異常. 全部刪除!  可見根據結果集Insert還是需要謹慎啊, 否則將多少垃圾資料在實際中.

5, 迴歸本意.  最終針對NULL值單獨判定, 防止意外大量資料產生.

--------------------------------------分割線 --------------------------------------

rlwrap - 解決Linux下SQLPLUS退格、上翻鍵亂碼問題

SQLPLUS spool 到動態記錄檔名

Oracle SQLPLUS提示符設定

通過設定SQLPLUS ARRAYSIZE(行預取)加快SQL返回速度

PL/SQL Developer實用技巧分享

--------------------------------------分割線 --------------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.