Oracle多表關聯更新的語法
今天給客戶批次更新資料,由於是oracle資料庫,oracle的多表更新語法和 sql server/sybase的語法不一樣,
於是就把幾年前搜來的oracle多表更新語法copy了過來
Oracel 示例:
update landleveldata a
set (a.gqdltks, a.bztks)=
(select b.gqdltks, b.bztks from gdqlpj b
where a.GEO_Code=b.lxqdm)
改好後
update lswlzd a
set a.lswlzd_wlmc=
(select b.newmc from kgcwltz081120 b
where a.lswlzd_wlbh=b.wlbh)
,在pl/sql中一執行,結果,報錯誤ora-01407,無法更新lc0349999.lswlzd.lswlzd_wlmc為null,
一開始我以為,kgcwltz081120 這個對照表有問題,結果,檢查了一下,沒有為null 的,後來,搜了一下網上的資料,發現是多表更新語法寫的有問題, 以上語法是 是將 表 lswlzd 中 lswlz d_wlmc 列 的值全部更新,更新的值為: select b.newmc from kgcwltz081120 b where a.lswlzd_wlbh=b.wlbh (沒有對應上的更新為null.)
這也就是那個ora-01407錯誤的來歷。
正確的oracle多表更新的語法為:
update lswlzd a
set a.lswlzd_wlmc=
(select b.newmc from kgcwltz081120 b
where a.lswlzd_wlbh=b.wlbh)
where exists
(select 1
from kgcwltz081120 b
where a.lswlzd_wlbh=b.wlbh)
下邊的語句是建立KGCWLTZ081120 這個對照表的語句:
CREATE TABLE LC0349999.KGCWLTZ081120
(
WLBH VARCHAR2(30) NOT NULL,
OLDMC VARCHAR2(200) NOT NULL,
NEWMC VARCHAR2(200) NOT NULL
)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/161195/viewspace-498161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多表關聯更新(mysql,oracle,postgreSQL)MySqlOracle
- ORACLE多表關聯UPDATE語句Oracle
- ORACLE多表關聯UPDATE 語句Oracle
- Oracle\MS SQL Server的資料庫多表關聯更新UPDATE與多表更新OracleSQLServer資料庫
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- MySQL關聯多表更新的操作MySql
- Oracle多表關聯更新的方式選擇, Loop or Hash update?OracleOOP
- Oracle 多表關聯刪除Oracle
- 關於使用多表做update的語法
- Oracle的多表插入語句Oracle
- 【轉載】oracle更新語法Oracle
- MySQL多表關聯查詢MySql
- MySQL 多表關聯刪除MySql
- JPA多表關聯查詢
- mysql中的多表關聯查詢MySql
- thinkphp中的多表關聯查詢PHP
- mybatis多表聯合查詢的寫法MyBatis
- Oracle多表插入語句Oracle
- oracle觸發器~ 更新多表的問題Oracle觸發器
- 如何做多表關聯查詢
- MySQL為什麼不要多表關聯?MySql
- WPF多表關聯資料繫結
- MySQL 多表更新的限制MySql
- MYSQL多表更新刪除以及和ORACLE的對比MySqlOracle
- 多表等值關聯重複列的命名原則
- SQL聯合查詢中的關鍵語法SQL
- sql 多表關聯刪除表資料SQL
- MyBatisPlus怎麼多表關聯查詢?MyBatis
- Mybatis 多表關聯查詢(1) one-to-one關係MyBatis
- Mysql跨表更新 多表update sql語句總結MySql
- 多表關聯查詢中,關聯欄位都應該建立索引嗎?索引
- onethinkphp 如何做多表關聯查詢PHP
- Python全棧Web(Flask框架、多表關聯)Python全棧WebFlask框架
- Oracle 級聯表更新和SQLServer 級聯表更新OracleSQLServer
- SQL優化之多表關聯查詢-案例一SQL優化
- Spring Data JPA 實現多表關聯查詢Spring
- 生成批量刪除pd使用者多表資料(多表關聯)_dbms_stats
- 更新操作中的外關聯(一)