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,我将对许多表使用查询,如果我列出列,它将不会是动态的,我生成表名并将其放入循环中,这就是为什么我不放置每个字段名,在此之前非常感谢,但如果不这样做,您就有可能映射错误的列。您可以创建存储过程,并在其中从两个表中获取列列表,查看差异,按正确顺序填充,然后将语句保存在变量中。然后你可以立即执行它。存储过程?嗯,我以前从未用过,谢谢,我会学习的