搜尋此網誌
2015年7月30日 星期四
替查詢資料表建立別名
在 Oracle資料庫下,以A帳號登入所建立的資料表(如 customer),B帳號想存取該資料表,必須有存取該資料表的權限之外,在沒有額外設定下,資料表名稱為〔帳號.資料表名稱(如A.customer)〕,但透過 SYNONYM,資料表名稱可改為 customer。
使用 CREATE SYNONYM創建一個別名,which is an alternative name for a table,view...,但使用 CREATE SYNONYM的前提是具有使用該指令的權限
CREATE SYNONYM pay.payrec_pms FOR paysys.payrec_pms;
GRANT INSERT, delete, update, select ON paysys.payrec_pms TO pay WITH GRANT OPTION;
DROP SYNONYM pay.payrec_pms;
2015年7月12日 星期日
用其它的 Table 來更新資料(Update From table)
pl-sql
UPDATE table1 a
SET table1_column = (SELECT table2_column
FROM table2
WHERE ID = a.ID)
如果雙方均有KEY值,使用下面這個方法會超快
UPDATE (
SELECT PAYCDL.ID_NO, PAYCDL.DATE_ADD DATE_ADD_OLD,PAYCDL.DATE_LAST_MAINT DATE_LAST_MAINT_OLD,
EXSCCS_PMS2.DATE_ADD DATE_ADD_NEW, EXSCCS_PMS2.DATE_LAST_MAINT DATE_LAST_MAINT_NEW
FROM PAYCDL,
EXSCCS_PMS2
WHERE PAYCDL.ID_NO = EXSCCS_PMS2.ID_NO)
SET DATE_ADD_OLD = DATE_ADD_NEW,
DATE_LAST_MAINT_OLD = DATE_LAST_MAINT_NEW
-----------------------------------
ms-sql
UPDATE table1
SET table1.col = table2.col1
FROM table2 WHERE table2.oldCol = table1.col
UPDATE table1 a
SET table1_column = (SELECT table2_column
FROM table2
WHERE ID = a.ID)
如果雙方均有KEY值,使用下面這個方法會超快
UPDATE (
SELECT PAYCDL.ID_NO, PAYCDL.DATE_ADD DATE_ADD_OLD,PAYCDL.DATE_LAST_MAINT DATE_LAST_MAINT_OLD,
EXSCCS_PMS2.DATE_ADD DATE_ADD_NEW, EXSCCS_PMS2.DATE_LAST_MAINT DATE_LAST_MAINT_NEW
FROM PAYCDL,
EXSCCS_PMS2
WHERE PAYCDL.ID_NO = EXSCCS_PMS2.ID_NO)
SET DATE_ADD_OLD = DATE_ADD_NEW,
DATE_LAST_MAINT_OLD = DATE_LAST_MAINT_NEW
-----------------------------------
ms-sql
UPDATE table1
SET table1.col = table2.col1
FROM table2 WHERE table2.oldCol = table1.col
訂閱:
文章 (Atom)