【正文】
g another_exception] ? [WHEN others THEN ? code for handing any other exception.] Oracle 異常處理 ? 例子: declare exec_sql_err exception。 end if。 Oracle Update用法 ? 關(guān)于 ORACLE的 UPDATE更新多表的問(wèn)題 一種是: update table1 set (field1,field2...) = (Select Field1,field2.... from table2 where =) where in (select field1 from table2) Oracle Update用法 ? 二種是: ? 將 table1,table2相關(guān)聯(lián)字段建立主鍵 Primary key 或 Union key ? Update (Select , ? from table1,table2 ? where =) ? Set =, ? =, ? ...... ? table1的 Field1和 table2的 field1將需要建立主鍵或唯一索引才行 Oracle Update用法 ? 三種是: Oracle9i引入了 MERGE命令 ,你能夠在一個(gè) SQL語(yǔ)句中對(duì)一個(gè)表同時(shí)執(zhí)行 inserts和 updates操作 . MERGE命令從一個(gè)或多個(gè)數(shù)據(jù)源中選擇行來(lái) updating或 inserting到一個(gè)或多個(gè)表 . Oracle 10g中 MERGE有如下一些改進(jìn): UPDATE或 INSERT子句是可選的 UPDATE和 INSERT子句可以加 WHERE子句 ON條件中使用常量過(guò)濾謂詞來(lái) insert所有的行到目標(biāo)表中 ,不需要連接源表和目標(biāo)表 merge into table1 using table2 on (= and ....) when matched then Update set =, =, ...... when not matched then [doing other thing] ? 其余方法可使用游標(biāo) 。 SELECT ENAME , SAL FROM EMP WHERE EMPNO = 291。 謝 謝! 演講完畢,謝謝觀看! 。 COMMIT 只要有可能 ,在程序中盡量多使用 COMMIT, 這樣程序的性能得到提高 ,需求也會(huì)因?yàn)?COMMIT所釋放的資源而減少 : COMMIT所釋放的資源 : a. 回滾段上用于恢復(fù)數(shù)據(jù)的信息 . b. 被程序語(yǔ)句獲得的鎖 Oracle SQL優(yōu)化 用 Where子句替換 HAVING子句 避免使用 HAVING子句 , HAVING 只會(huì)在檢索出所有記錄之后才對(duì)結(jié)果集進(jìn)行過(guò)濾 . 這個(gè)處理需要排序 ,總計(jì)等操作 . 如果能通過(guò) WHERE子句限制記錄的數(shù)目 ,那就能減少這方面的開(kāi)銷(xiāo) . 例如 : 低效 : SELECT REGION, AVG(LOG_SIZE) FROM LOCATION GROUP BY REGION HAVING REGION != ‘SYDNEY’ AND REGION != ‘PERTH’ 高效 SELECT REGION, AVG(LOG_SIZE) FROM LOCATION WHERE REGION REGION != ‘SYDNEY’ AND REGION != ‘PERTH’ GROUP BY REGION Oracle SQL優(yōu)化 EXISTS替代 IN NOT EXISTS替代 NOT IN EXISTS 通常來(lái)說(shuō) , 采用表連接的方式比 EXISTS更有效率 SELECT ENAME FROM EMP E WHERE EXISTS