Oracle SQL insert 和UPDATE使用一句话
Posted by chenyue on 8月 25th, 2009Merge Into repo_netpoint a
using (Select :1 As ID_NETPOINT,
:2 NETPOINT_NAME,
:3 NETPOINT_SHORTNAME,
:4 TYPE_ENTRY_EXIT,
:5 ID_GRID_OPERATOR,
:6 GUELTIG_VON,
:7 GUELTIG_BIS
From Dual
) b
On (a.ID_NETPOINT=b.ID_NETPOINT)
When matched Then update set
a.NETPOINT_NAME=b.NETPOINT_NAME,
a.NETPOINT_SHORTNAME=b.NETPOINT_SHORTNAME,
a.TYPE_ENTRY_EXIT=b.TYPE_ENTRY_EXIT,
a.ID_GRID_OPERATOR=b.ID_GRID_OPERATOR,
a.GUELTIG_VON=b.GUELTIG_VON,
a.GUELTIG_BIS=b.GUELTIG_BIS,
a.LAST_UPDATE=sysdate
When Not matched Then
insert (ID_NETPOINT,NETPOINT_NAME,NETPOINT_SHORTNAME,TYPE_ENTRY_EXIT,ID_GRID_OPERATOR,GUELTIG_VON,GUELTIG_BIS,LAST_UPDATE)
Values (b.id_netpoint,b.NETPOINT_NAME,b.NETPOINT_SHORTNAME,b.TYPE_ENTRY_EXIT,b.ID_GRID_OPERATOR,b.GUELTIG_VON,b.GUELTIG_BIS,sysdate);
z.B
Merge Into repo_netpoint a
using (Select 3 As ID_NETPOINT,
‘YueChen’ NETPOINT_NAME,
‘Tobias’ NETPOINT_SHORTNAME,
‘exit’ TYPE_ENTRY_EXIT,
null ID_GRID_OPERATOR,
to_date(’01.10.2009′,’dd.mm.yyyy’) GUELTIG_VON,
to_date(’01.10.2020′,’dd.mm.yyyy’) GUELTIG_BIS
From Dual
) b
On (a.ID_NETPOINT=b.ID_NETPOINT)
When matched Then update set
a.NETPOINT_NAME=b.NETPOINT_NAME,
a.NETPOINT_SHORTNAME=b.NETPOINT_SHORTNAME,
a.TYPE_ENTRY_EXIT=b.TYPE_ENTRY_EXIT,
a.ID_GRID_OPERATOR=b.ID_GRID_OPERATOR,
a.GUELTIG_VON=b.GUELTIG_VON,
a.GUELTIG_BIS=b.GUELTIG_BIS,
a.LAST_UPDATE=sysdate
When Not matched Then
insert (ID_NETPOINT,NETPOINT_NAME,NETPOINT_SHORTNAME,TYPE_ENTRY_EXIT,ID_GRID_OPERATOR,GUELTIG_VON,GUELTIG_BIS,LAST_UPDATE)
Values (b.id_netpoint,b.NETPOINT_NAME,b.NETPOINT_SHORTNAME,b.TYPE_ENTRY_EXIT,b.ID_GRID_OPERATOR,b.GUELTIG_VON,b.GUELTIG_BIS,sysdate);
Recent Comments