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

如何用Informix SQL和Genero 4GL提取数据库列中不在临时表的名称?

提取Informix中names表独有的名称并插入临时表

纯Informix SQL实现

直接使用INSERT ... SELECT结合NOT EXISTS或LEFT JOIN即可批量完成差异提取与插入,不需要用IF语句(IF仅适用于变量级判断,无法处理列级批量对比)。

方法1:使用NOT EXISTS

INSERT INTO tmp_new_names (name)
SELECT n.name
FROM names n
WHERE NOT EXISTS (
    SELECT 1
    FROM tmp_names tn
    WHERE tn.name = n.name
);

该语句会查询names表中所有在tmp_names表中没有匹配name值的记录,直接插入到tmp_new_names的name列。

方法2:使用LEFT JOIN

INSERT INTO tmp_new_names (name)
SELECT n.name
FROM names n
LEFT JOIN tmp_names tn ON n.name = tn.name
WHERE tn.name IS NULL;

通过左连接关联两张表,tn.name IS NULL的记录即为names表独有的数据,提取后插入目标表。

Genero 4GL实现

可以直接嵌入SQL执行,也可以通过游标遍历处理:

方式1:直接执行批量插入SQL

MAIN
    -- 执行差异插入
    EXECUTE IMMEDIATE "
        INSERT INTO tmp_new_names (name)
        SELECT n.name
        FROM names n
        WHERE NOT EXISTS (
            SELECT 1
            FROM tmp_names tn
            WHERE tn.name = n.name
        )
    "
    
    -- 检查执行结果
    IF SQLCA.SQLCODE <> 0 THEN
        DISPLAY "插入失败: 错误码=", SQLCA.SQLCODE, " 错误信息=", SQLCA.SQLERRM
    ELSE
        DISPLAY "成功插入 ", SQLCA.SQLROWCOUNT, " 条差异记录"
    END IF
END MAIN

方式2:游标遍历逐行插入(适合需要额外处理的场景)

MAIN
    DEFINE v_name CHAR(64) -- 根据实际name字段类型和长度定义
    
    -- 可选:清空目标临时表
    EXECUTE IMMEDIATE "DELETE FROM tmp_new_names"
    
    -- 定义游标查询差异记录
    DECLARE cur_unique_names CURSOR FOR
        SELECT n.name
        FROM names n
        WHERE NOT EXISTS (
            SELECT 1
            FROM tmp_names tn
            WHERE tn.name = n.name
        )
    
    OPEN cur_unique_names
    FETCH cur_unique_names INTO v_name
    WHILE SQLCA.SQLCODE = 0
        INSERT INTO tmp_new_names (name) VALUES (v_name)
        
        -- 检查单条插入状态
        IF SQLCA.SQLCODE <> 0 THEN
            DISPLAY "插入记录 '", v_name, "' 失败: ", SQLCA.SQLERRM
            CONTINUE
        END IF
        
        FETCH cur_unique_names INTO v_name
    END WHILE
    CLOSE cur_unique_names
    
    DISPLAY "差异记录处理完成"
END MAIN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:27:50