replace into bis_all_fire_alarm_archive_xiaoban (alarm_id,polygon,xiaoban) values(#{alarm_id},#{polygon},#{xiaoban})此代码修改成orcale
时间: 2024-02-18 22:58:57 浏览: 63
在Oracle中,可以使用"MERGE INTO"语句来完成类似于MySQL中"REPLACE INTO"的功能,具体的语法如下所示:
```
MERGE INTO bis_all_fire_alarm_archive_xiaoban dst
USING (SELECT #{alarm_id} AS alarm_id, #{polygon} AS polygon, #{xiaoban} AS xiaoban FROM dual) src
ON (dst.alarm_id = src.alarm_id)
WHEN MATCHED THEN
UPDATE SET dst.polygon = src.polygon, dst.xiaoban = src.xiaoban
WHEN NOT MATCHED THEN
INSERT (alarm_id, polygon, xiaoban) VALUES (src.alarm_id, src.polygon, src.xiaoban);
```
需要注意的是,Oracle中没有REPLACE INTO语句,因此需要使用MERGE INTO来完成类似的功能。另外,Oracle中的"FROM dual"语句可以用来临时创建一个虚拟的表,以供MERGE INTO语句使用。同时,需要将原来的"#{...}"替换为"AS ..."的形式。
相关问题
replace into bis_all_fire_alarm_archive_xiaoban (alarm_id,polygon,xiaoban)此代码修改成orcale
在Oracle中,可以使用"MERGE INTO"语句来完成类似于MySQL中"REPLACE INTO"的功能,具体的语法如下所示:
```
MERGE INTO bis_all_fire_alarm_archive_xiaoban dst
USING (SELECT alarm_id, polygon, xiaoban FROM dual) src
ON (dst.alarm_id = src.alarm_id)
WHEN MATCHED THEN
UPDATE SET dst.polygon = src.polygon, dst.xiaoban = src.xiaoban
WHEN NOT MATCHED THEN
INSERT (alarm_id, polygon, xiaoban) VALUES (src.alarm_id, src.polygon, src.xiaoban);
```
需要注意的是,Oracle中没有REPLACE INTO语句,因此需要使用MERGE INTO来完成类似的功能。另外,Oracle中的"FROM dual"语句可以用来临时创建一个虚拟的表,以供MERGE INTO语句使用。
阅读全文