我有一個關於對具有不同數據結構(Oracle)的表進行統一插入查詢的問題 結構(Oracle)。讓我詳細說明一個例子:如何複製表中除應該更改的單個列以外的所有數據
tb_customers (
id NUMBER(3), name VARCHAR2(40), archive_id NUMBER(3)
)
tb_suppliers (
id NUMBER(3), name VARCHAR2(40), contact VARCHAR2(40), xxx, xxx,
archive_id NUMBER(3)
)
所有表中唯一存在的列是[archive_id]。計劃是通過將所有記錄複製(複製)到不同的數據庫分區並相應地增加這些記錄的archive_id來創建數據集的新歸檔。 [archive_id]始終是主鍵的一部分。
我的問題是用select語句來做實際的數據重複。因爲列是可變的,所以我努力想出一個統一的select語句來複制數據並更新archive_id。
一個解決方案(的作品),是迭代在存儲過程中的所有表,並做了:
CREATE TABLE temp as (SELECT * from ORIGINAL_TABLE);
UPDATE temp SET archive_id=something;
INSERT INTO ORIGINAL_TABLE (select * from temp);
DROP TABLE temp;
我不喜歡這種解決方案非常的DDL命令弄髒所有還原點。
有沒有其他人有任何解決方案?
我想你的示例SQL的倒數第二行應該是: INSERT INTO ** ** TARGET_TABLE(選擇溫度*); – ntziolis 2010-04-23 07:23:21
ty指出,固定 – twiga 2010-05-06 11:37:09