You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改MERGE语句实现插入tab2时转换tab1的字段数据类型

修正后的MERGE语句

你原来的语句存在字段名、别名错误,补充类型转换逻辑后最终语句如下:

MERGE INTO tab2 tt
USING (SELECT
           e_id, e_date, t_ref_num
       FROM tab1) t1 ON ( tt.e_id = TO_NUMBER(t1.e_id) )

WHEN MATCHED THEN  
    UPDATE
        SET tt.e_date = TO_DATE(t1.e_date, 'dd-mm-yyyy'),
            tt.t_ref_num = TO_NUMBER(t1.t_ref_num)

WHEN NOT MATCHED THEN
    INSERT (e_id, e_date, t_ref_num)
    VALUES (TO_NUMBER(t1.e_id), TO_DATE(t1.e_date, 'dd-mm-yyyy'), TO_NUMBER(t1.t_ref_num));

改动说明

  • 修正了USING子查询中写错的字段名_t_ref_num为正确的t_ref_num
  • 修正了ON关联条件中错误的别名t2为目标表的正确别名tt,同时对t1的e_id做了数值转换保证关联时类型匹配
  • 所有涉及从tab1取的字段都按tab2的类型做了转换:
    • 字符串类型的e_id、t_ref_num通过TO_NUMBER()转为数值类型
    • 字符串格式的日期通过TO_DATE()配合格式模板dd-mm-yyyy转为DATE类型,和你示例中插入的01-01-2000格式完全匹配

内容的提问来源于stack exchange,提问作者Vicky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:54:04