TMP_DS表:临时表
create table TMP_DS
(
s04 VARCHAR2(200), 医疗证号:存在1..n条相同
s06 VARCHAR2(200), 姓名: 存在1..n条相同
s08 VARCHAR2(200) 身份证号:唯一
)医疗信息表:
create table D401
(
d401_14 NUMBER(20) not null, ID 主键
d401_02 VARCHAR2(20), 姓名:存在1..n条相同
d401_03 VARCHAR2(20), 身份证号:唯一但是为空值
d401_07 VARCHAR2(20) 医疗证号:存在1..n条相同
)现在要做的是把TMP_DS表中的 身份证号,更新到D401中,在D401中已经有了相关的信息,只是根据两张表的姓名、医疗证号更新到D401的身份证号信息。
请问高手们怎么做这个,小弟对PL/SQL 就是一小白。在TMP_DS 表中一共有S01到S13这么多字段。
create table TMP_DS
(
s04 VARCHAR2(200), 医疗证号:存在1..n条相同
s06 VARCHAR2(200), 姓名: 存在1..n条相同
s08 VARCHAR2(200) 身份证号:唯一
)医疗信息表:
create table D401
(
d401_14 NUMBER(20) not null, ID 主键
d401_02 VARCHAR2(20), 姓名:存在1..n条相同
d401_03 VARCHAR2(20), 身份证号:唯一但是为空值
d401_07 VARCHAR2(20) 医疗证号:存在1..n条相同
)现在要做的是把TMP_DS表中的 身份证号,更新到D401中,在D401中已经有了相关的信息,只是根据两张表的姓名、医疗证号更新到D401的身份证号信息。
请问高手们怎么做这个,小弟对PL/SQL 就是一小白。在TMP_DS 表中一共有S01到S13这么多字段。
update D401 set d401_03=(select s08 from TMP_DS
where D401.d401_02=TMP_DS.s06
and D401.d401_07=TMP_DS.s04
and rownum=1)
where exists(select 1 from TMP_DS
where D401.d401_02=TMP_DS.s06
and D401.d401_07=TMP_DS.s04)