oracle 中有一张表A(A1,A2,A3,A4,A5),一张表B(B1,B2,B3),要把B表的值插到A表中,
其中,A1为自动生成的ID,A2=B1,A3为系统时间,A4=B2,A5=sun(B3)groupbyB1,B2,sql怎么实现啊,要求一次性插入多条数据时,A3用变量保...
其中,A1为自动生成的ID,A2=B1,A3为系统时间,A4=B2,A5=sun(B3) group by B1,B2,sql怎么实现啊,要求一次性插入多条数据时,A3用变量保持时间一致。
通过在存储过程中用变量,A3可以保持时间一致吧,就是不知道怎么把这个变量/常量和查询结果连起来。A1就是和sequence 展开
通过在存储过程中用变量,A3可以保持时间一致吧,就是不知道怎么把这个变量/常量和查询结果连起来。A1就是和sequence 展开
2个回答
展开全部
A1是用sequence值么?
另外,A3使用变量保持时间不变是什么意思?如果是系统时间,带有时分秒,那么就算使用变量也是不可能是一样的。如果没有其他的,一个插入语句还是蛮简单的,比如:
INSERT INTO A
(A2,A3,A4,A5
)
SELECT B1, SYSDATE,B2,SUM(B3) FROM B GROUP BY B1,B2;
另外,A3使用变量保持时间不变是什么意思?如果是系统时间,带有时分秒,那么就算使用变量也是不可能是一样的。如果没有其他的,一个插入语句还是蛮简单的,比如:
INSERT INTO A
(A2,A3,A4,A5
)
SELECT B1, SYSDATE,B2,SUM(B3) FROM B GROUP BY B1,B2;
更多追问追答
追问
通过在存储过程中用变量,A3可以保持时间一致吧,就是不知道怎么把这个变量/常量和查询结果连起来。A1就是和sequence
追答
DECLARE
v_date date :=to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd');
BEGIN
INSERT INTO A
(A2,A3,A4,A5
)
SELECT sqe_xxx.nextval,B1, v_date,B2,SUM(B3) FROM B GROUP BY B1,B2;
END ;
没写存储,写了个过程,执行下就OK,不知道能不能满足你的要求,sequence的话自己在过程中修改下名称。
展开全部
你好,可以这么写:
insert into a(a1,a2,a3,a4,a5) select xxx.nextval,sysdate, b1 ,b2,sum(b3) from b group by b1,b2
把xxx换成你sequence即可。
希望可以解决你的问题
insert into a(a1,a2,a3,a4,a5) select xxx.nextval,sysdate, b1 ,b2,sum(b3) from b group by b1,b2
把xxx换成你sequence即可。
希望可以解决你的问题
追问
这样SYSDATE每条记录都不一样,如何在存储过程中用变量实现
追答
那你可以定义一个变量表示,如:
current_date := sysdate
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询