1.将远程的数据库数据提取到本地使用dblink(本地的数据库表要和远程的数据库字段基本对应)
2.先对本地用户赋予权限
grant create database link to HBQS;
grant create public database link to HBQS;
3.创建dblink
create public database link DBL_NET
connect to CS identified by cs using 'ORACLEDB';
这个'ORACLEDB'对应oracle里面tnsnames.ora文件里面的数据库服务名(cs对应远程数据库的账号和密码)
ORACLEDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ICSS-PC)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracleDB)
)
)
4.test
select * from kb14@DBL_NET
当然插入数据可以这样
INSERT INTO KB14
SELECT akb020, --定点医疗机构编号
aae002, --结算期
-- akb110, --统筹扣款金额
-- akb111, --大额扣款金额
-- akb112, --帐户扣款金额
-- akb113, --离休扣款金额
aae013, --扣款原因--违规事项
akb114, --扣款编号
aae011, --经办人--审核人
aae036, --经办时间--登记日期
-- akb115, --门诊统筹扣款
-- akb116, --工伤扣款金额
-- akb117, --生育扣款金额
-- akb118, --居民住院统筹扣款金额
-- akb119, --居民大额扣款金额
--akb120, --居民帐户扣款金额
--akb121, --居民门诊统筹扣款
akc803, --参保地统筹区编号
akc801, --就医地统筹区编号
aae100, --有效标志
aae037, --扣除时间
akc076, --月结标志
aae140, --险种
aac001, --个人编号
akc020, --社保卡号
aac003, --姓名
aac004, --性别
akb127, --处理结果
akb128, --扣除门诊
akb129, --扣除住院
akb130, --罚款金额
aae012, --发生日期
aae017, --审批人
aac002, --身份证号
baz061, --社保卡SID
akc021, --人员类别
--akb131, --处理结果(个人)
--akb132, --追回门诊
--akb133, --追回住院
--akb134, --罚款金额
akb135, --处理标志1=个人,2=机构
--akb136, --个人所属
AKC300,AKC190,AAE072,ACCCHE_MON,null,SYSDATE FROM KB14@DBL_NET A WHERE
NOT EXISTS (SELECT 1 FROM KB14 WHERE AAE002 = A.AAE002 AND AKB020 = A.AKB020 AND AKB114 = A.AKB114)
AND AAE002>='201412';