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
展开
 我来答
Storm_duck
推荐于2016-07-06 · TA获得超过1629个赞
知道小有建树答主
回答量:1104
采纳率:82%
帮助的人:452万
展开全部
A1是用sequence值么?
另外,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的话自己在过程中修改下名称。
毋文心31
2014-09-21 · TA获得超过212个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:150万
展开全部
你好,可以这么写:
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式