2010-02-19 68 views
1

c#code:我有2个oracle数据库一个是远程的,我从我的本地oracle数据库中的表中选择值:查询返回8列:我想写数据在具有不同列名和属性的远程oracle表中:我想要确保只插入新行值:远程数据库的表结构与我的select查询返回的列不同。阅读一个oracle数据库写入另一个远程oracle数据库

我从不同的表查询select语句返回如下:列:CUSTOMER_NAME,CUSTOMER_ID,customer_dep_number,MOBILE_NUMBER,支付金额,vehicle_model,collection_point,TRANSACTION_DATE

远程表的结构如下: 表vehicle_bought

BUYER_ID NUMBER NOT NULL,

BUYER_NAME VARCHAR2(100 BYTE)NOT NULL,

布夜R_NAT_ID VARCHAR2(25 BYTE)DEFAULT 'N/A' NOT NULL,

BUYER_VEHICLE_DESCRIPTION VARCHAR2(2000 BYTE)NOT NULL,

BUYER_STATUS VARCHAR2(1个字节)DEFAULT 'U' NOT NULL,

VEHICLE_AMOUNT NUMBER NOT NULL,

CREATED_BY号,

TRANS_CREATION_DATE DATE,

LAST_UPDATED_BY NUMBER,

LAST_UPDATE_DATE DATE,

RECEIPT_CREATED VARCHAR2(1个字节)DEFAULT 'N',

MOBILE_NUM VARCHAR2(50 BYTE),

VEHICLE_COLLECTION_POINT VARCHAR2(100 BYTE),

RMA_FLAG VARCHAR2(1 BYTE)DEFAULT'N',

字段我想读并插入到如下所示: CUSTOMER_NAME = BUYER_NAME, CUSTOMER_ID = BUYER_ID

customer_dep_number = BUYER_NAT_ID

MOBILE_NUMBER = MOBILE_NUM

支付金额= VEHICLE_AMOUNT

vehicle_model = BUYER_VEHICLE_DESCRIPTION

collection_point = VEHICLE_COLLECTION_POINT

TRANSACTION_DATE = TRANS_CREATION_DATE

非常迫切的C#语言,请:纪念品答应谁帮助了。

+0

BRIBERY!我认为有一个标准的做法,在stackoverflow ... – 2010-02-19 07:58:55

+0

不贿赂,我的文化总是教我们给一个appreaciation的标志:请协助Si​​r.Kemp – 2010-02-21 09:47:00

回答

1

快速和脏溶液:

  1. 创建远程数据库(目的地)的数据库链接,连接到本地数据库(源)
  2. 运行跨数据库链接的插入件从远程数据库,即

    INSERT INTO desttable (customer_name, 
             customer_id, 
             customer_dep_number, 
             mobile_number, ...) 
    SELECT s.buyer_name, 
         s.buyer_id, 
         s.buyer_nat_id, 
         s.mobile_num, 
         ... 
    FROM [email protected] s 
    WHERE NOT EXISTS (
        SELECT null FROM desttable 
        WHERE desttable.buyer_id = s.buyer_id 
    ); 
    

替代:一个更好的解决方案可能会使用MERGE代替

相关问题