注册 登录
编程论坛 Oracle论坛

oracle关联多张表用一张表的一个字段更新另一张表的一个字段

风飘无殇 发布于 2021-10-22 09:32, 2568 次点击
程序代码:
UPDATE Files x
SET ( x.Filename ) = nvl(
    (
        SELECT DISTINCT
            T7.lastfile
            FROM--         Files T1,-- 附件文件名表
            Version T2,-- 版本表
            Version_File_Map T3,-- 版本文件名映射表
            Attachment T4,-- 附件表
            Item T5,-- 物料表
            Attachment_Map T6,-- 附件跟物料, 附件跟版本映射
            FILENAME_P T7 -- 物料,原名,新名,版本号
            
        WHERE
            x.Id = T3.File_Id
            AND T2.Id = T3.Version_Id
            AND T2.Attach_Id = T4.Id
            AND T4.Id = T6.Attach_Id --         AND T2.Attach_Id = T6.Attach_Id
            
            AND T5.Id = T6.Parent_Id
            AND T2.Attach_Id = T6.Attach_Id
            AND x.File_Type = 'PDF'
            AND T7.id = T5.Item_Number --             AND T5.ITEM_NUMBER = '110103000967'
            
            AND T7.firstfile = x.Filename --             AND T1.FILENAME = '110103000967_初始.PDF'
            
            AND T2.VERSION_NUM = T7.version --             AND T7.version = '1'
--
         AND T1.id = x.id --         ) T WHERE lastfile = T.lastfile
            
        ),
        x.filename
    )


运行
 ORA-01427: 单行子查询返回多个行

查询出来的是结果集,但是这就是我需要的啊,一张表的字段批量更新另一张表的一个字段,各位大神们,怎么搞啊
3 回复
#2
风飘无殇2021-10-22 11:04
没有大佬帮我看看吗
#3
风飘无殇2021-10-27 09:01
还是自己写程序解决了
#4
雕龙2022-01-03 11:39
你用 merge into试试,
1