17,377
社区成员
发帖
与我相关
我的任务
分享
declare
--telTable 就是存放电话号码的那张表
cursor cur is select telno from telTable; --将电话号码表中数据存到游标里。
vPostNo varchar2;
vTelNo varchar2;
i integer;
begin
open cur;
loop
fetch cur into vTelNo; --遍历游标 取出电话号码
exit when cur%notfound;
select POSTNO into vPostNo from POSTTABLE where TELNO=vTelNo; --根据电话从邮编表中找出邮编
insert into A(POSTNO) values(vPostNo);--将邮编插入到A表中 你改的时候改这句就行。
end loop;
close cur;
end;
------Oracle支持批量插入的功能,你可以模仿这个语句,修改下,可以满足你的需求。good luck!
INSERT ALL
WHEN type=1 THEN INTO tab1 VALUES (myseq.NEXTVAL, val)
WHEN type=2 THEN INTO tab2 VALUES (myseq.NEXTVAL, val)
WHEN type IN (3,4,5) THEN INTO tab3 VALUES (myseq.NEXTVAL, val)
ELSE INTO tab4 VALUES (myseq.NEXTVAL, val)
SELECT type, val FROM source_tab;
最好给出完整的表结构,测试数据,计算方法和正确结果.否则耽搁的是你宝贵的时间。
如果有多表,表之间如何关联?
insert into (columns)
SELECT 邮编 FROM(
SELECT 邮编,count(1) FROM 码表
group by 邮编 having count(1)<=1)