ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段

ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段,第1张

不太明白:循环添加到另一张表的某一字段 是什么意思?是指把结果集的多个字段值,添加到另一张的一个字段?

若是的话:要把从几张级联表中查询出的结果集各字段转换成另一张表的字段类型,插入就可以,示例如下

insert into tbl4(e)

select a||b||c||d from tbl1,tbl2,tbl3

where tbl1key1=tbl2key1 and tbl1key2=tbl3key2

刚回答完,看那个问题,回答的第二部分,如果还是想用rownum,那么需要多一个子查询,把rownum作为一个字段,并且重命名,或者考虑一次插入,不用循环,直接取到rownum<=v_sum即可。

哥们,不用循环吧?再说用循环也不能解决吧,循环你的值怎么赋?你怎么知道下个记录该更新成什么?

通过to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd')试试可不可转换,没环境没法试,不行的话用instr函数,一句update就行了,不过我现在没时间写代码,给你个思路

instr((logintime,'-',1)可以取出第一个-的位置,然后通过substr(logintime,1,instr((logintime,'-',1)-1)取出第一个-前面的部分,就是年,20||就行了,然后再用instr(logintime,'-',2)

--这个是第2个-的位置,知道第1、2个-的位置后还是通过substr取出第1个-和第2个-之间的字符,就是月,case when一下如果是1位就补个0,。。。。依次类推,麻烦是麻烦点,但是比较通用,能适应各种情况,不过日期的话应该有规律,应该能根据规律简化不少,你自己琢磨吧

如果你非要用循环可通过rowid这个伪列,即定义一个参数做计数用,循环一次加1,直到等于max(rowid)为止,不过我实在想不出用循环怎么弄,期待高手。。。

以上就是关于ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段全部的内容,包括:ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段、oracle数据库loop循环--未找到数据、如何循环更新oracle一列的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9754128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存