Oracle 批次更新表欄位

來源:互聯網
上載者:User

標籤:ora   nbsp   where   col   har   between   rom   AC   sda   

 Oracle 批次更新表欄位CreateTime--2018年2月27日16:02:24Author:Marydon

(一) 將數字替換成漢字

  第一步,去重查詢

  使用distinct關鍵字先對該欄位值進行去重查詢,看共有幾種情況

--查詢指定區間內錶停診欄位的值SELECT DISTINCT T.CLOSE_TZ  FROM CONSULT_SCHEDULE T WHERE T.SCHEDULE_DATE BETWEEN TO_DATE(‘2018-01-01‘, ‘yyyy-MM-dd‘) AND       TO_DATE(‘2018-02-28‘, ‘yyyy-MM-dd‘);

  查詢結果:共有3種情況

  

  第二步,區分不同的數值並更新對應的漢字

  0改為是,1改為否

  使用decode函數實現

--正確sqlUPDATE CONSULT_SCHEDULE T   SET T.REPLACE_TZ = DECODE(REPLACE_TZ, ‘1‘, ‘否‘, ‘0‘, ‘是‘) WHERE T.REPLACE_TZ IN (‘0‘, ‘1‘)   AND T.SCHEDULE_DATE BETWEEN TO_DATE(‘2018-01-01‘, ‘yyyy-MM-dd‘) AND       TO_DATE(‘2018-02-28‘, ‘yyyy-MM-dd‘);

  易錯點說明:

--錯誤sql1:CLOSE_TZ欄位是varchar2類型UPDATE CONSULT_SCHEDULE T   SET T.CLOSE_TZ = DECODE(CLOSE_TZ, 1, ‘否‘, 0, ‘是‘) WHERE T.SCHEDULE_DATE BETWEEN TO_DATE(‘2018-01-01‘, ‘yyyy-MM-dd‘) AND       SYSDATE;  

  

  解析:CLOSE_TZ欄位是varchar2類型,1和0是number類型

--錯誤sql2:使用decode()函數,不在指定的情況會被置空UPDATE CONSULT_SCHEDULE T   SET T.CLOSE_TZ = DECODE(CLOSE_TZ, ‘1‘, ‘否‘, ‘0‘, ‘是‘) WHERE T.SCHEDULE_DATE BETWEEN TO_DATE(‘2018-01-01‘, ‘yyyy-MM-dd‘) AND       SYSDATE;

  更新後,再次執行上面的查詢語句

  

  原因:根據第一個查詢執行的結果,可以得出正確的結果應該使用是和否這2種情況,但這卻是3種情況

  解析:這是因為decode函數使用不當造成的,應該將不需要更改的列去除掉。 

  小技巧:在修改資料庫資料時,執行update語句後,一定不要急著提交,執行一次查詢看看是否是自己想要的結果,再提交。

(二)將一個欄位的值給另一欄位  

UPDATE  VIRTUAL_CARD T SET T.ID_CARD=T.CARDNUM WHERE T.ID_CARD IS NULL;

(三)批量修改表欄位中指定字元 

    UpdateTime--2017年8月23日08:44:34

    1.1.22 替換欄位中指定字串 

--將PATIENT_AUTO_IMAGEINFO表中欄位IMAGE_ADRESS中的#號轉換成_UPDATE PATIENT_AUTO_IMAGEINFO   SET IMAGE_ADRESS = REPLACE(IMAGE_ADRESS, ‘#‘, ‘_‘) WHERE IMAGE_ADRESS LIKE ‘%#%‘

(四)根據ID批量修改

UPDATE TSORGDIAITEM    set FSTATUS = ?, FAUDITER = ?, FAUDDATE = SYSDATEWHERE FID IN (15632875, 15612443)

 

 

Oracle 批次更新表欄位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.