【发布时间】:2011-11-14 02:52:28
【问题描述】:
我在 Oracle 11g 上有一个表 t_test,其中包含两个字段:
CITY NAME
----- --------------
MIAMI JOHN
MIAMI ERNEST
MIAMI ERICK
TAMPA DAN
我想只使用一个插入命令在该查询中插入多行,并将NAME 的值作为查询中的参数传递。应该是这样的:
INSERT INTO T_TEST (CITY, NAME)
SELECT :1,(:2,:3,:4,:5) from dual
其中参数 1 是迈阿密,参数 2、3、4 和 5 是不同的名称。
我已经看到了一些示例,我认为最好的选择是 unpivot,所以我会有一个子查询将名称作为表中的行返回,但我不知道如何使用 unpivot这样做。
【问题讨论】:
-
只是一个澄清。可能名称的数量是可变的,我可以根据需要多次扩展参数(因此我可以将:2 转换为:2、:3、:4 等),但我不能将其他部分相乘查询,因此不能选择多个 DECODE 的解决方案。