Java 如何插入不同列数的select?
我的任务是将数据从Java 如何插入不同列数的select?,java,oracle,Java,Oracle,我的任务是将数据从X表SCHEMA\u a移动到SCHEMA\u B 问题是表SCHEMA_A.X有4列(sid,被删除了,c,d),表SCHEMA_B.X有5列(sid,被删除了,rid,c,d) 如何从另一个表中插入列rid的值,在这种情况下,我希望使查询尽可能动态? 目前,我只能考虑以某种方式修改此查询 插入到SCHEMA_B.X中 从SCHEMA_A.X Aa中选择* 其中A.is_deleted='n' 在添加虚拟列之前谢谢您 insert into SCHEMA_B.X selec
X
表SCHEMA\u a
移动到SCHEMA\u B
问题是表SCHEMA_A.X
有4列(sid
,被删除了,c
,d
),表SCHEMA_B.X
有5列(sid
,被删除了,rid
,c
,d
)
如何从另一个表中插入列rid的值,在这种情况下,我希望使查询尽可能动态?
目前,我只能考虑以某种方式修改此查询
插入到SCHEMA_B.X中
从SCHEMA_A.X Aa中选择*
其中A.is_deleted='n'
在添加虚拟列之前谢谢您
insert into SCHEMA_B.X
select *, 0 as dummy_columm
from SCHEMA_A.X Aa
WHERE A.is_deleted = 'n'
您可以使用NULL
或其他特殊值来指示其来源添加虚拟列
insert into SCHEMA_B.X
select *, 0 as dummy_columm
from SCHEMA_A.X Aa
WHERE A.is_deleted = 'n'
您可以使用NULL
或其他特殊值来指示其来源尝试这样做
insert into SCHEMA_B.X (sid,is_deleted,rid,c,d)
select sid,is_deleted,0 as rid,c,d
from SCHEMA_A.X A
WHERE A.is_deleted = 'n'
试着这样做
insert into SCHEMA_B.X (sid,is_deleted,rid,c,d)
select sid,is_deleted,0 as rid,c,d
from SCHEMA_A.X A
WHERE A.is_deleted = 'n'
它是否会在SCHEMA\u B
的rid
列中插入c
,依此类推?好的,将每个字段名替换为*,并将伪列名作为您在SCHEMA yes中没有的列。这就是我在回答中给出的。它会不会在SCHEMA\u A
的rid
列中插入c
,以此类推?好的,不是*,而是将每个字段名,并将伪列名作为SCHEMA-yes中没有的列。这就是我在回答中给出的。嗯,我将对许多表使用查询,如果我列出列,它将不会是动态的,我生成表名并将其放入循环中,这就是为什么我不放置每个字段名的原因,谢谢你,但没有它,你就有可能映射错误的列。你可以创建存储过程并在其中,您可以从两个表中获得列列表,查看差异,以正确的顺序填充,并将语句保存在变量中。然后你可以立即执行它。存储过程?嗯,我以前从未使用过,谢谢,我将学习ithmm,我将对许多表使用查询,如果我列出列,它将不会是动态的,我生成表名并将其放入循环中,这就是为什么我不放置每个字段名,在此之前非常感谢,但如果不这样做,您就有可能映射错误的列。您可以创建存储过程,并在其中从两个表中获取列列表,查看差异,按正确顺序填充,然后将语句保存在变量中。然后你可以立即执行它。存储过程?嗯,我以前从未用过,谢谢,我会学习的