oracle数据库如何利用存储过程向表中添加数据?

oracle数据库如何利用存储过程向表中添加数据?,第1张

实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。

CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3

 is

  --Result1  VARCHAR2(50)

  VAR_num number

begin

  VAR_num:=1

 while

   VAR_num< 1000000

   LOOP

      insert into rp_trans_log_day

        (trans_time,

         trans_province,

         trans_type,

         score_range,

         rule_name,

         trans_num)

        select to_date('2013/10/29', 'yyyy-mm-dd'),

               round(dbms_random.value(1, 300)) || '省',

               round(dbms_random.value(1, 800)) || '类型',

               round(dbms_random.value(1, 100)) || '风险分值',

               round(dbms_random.value(1, 300)) || '规则名称',

               '1'

          from dual

        commit

    VAR_num:=VAR_num+1

    end loop

end insert_data_4_pressure_3

即使没有提交,如果有数据插入的话,你再次查询也会查询到已经插入的数据,只是没有提交而已。

现在是你根本就没有插入一条数据,说明你的 插入语句后的select 语句根本就没有检索到数据啊。

你执行 这个查询 有数据吗?

select t.deptno, a.avgsal, count(*)

from scott.emp t left join

(select avg(sal) as avgsal, deptno

from scott.emp

group by deptno) a

on t.deptno = a.deptno

--从原表和新表链接的表中

where t.sal <a.avgsal

group by t.deptno, a.avgsal

create procedure prc_sale

@编号 int

,@名称 varchar(20)

,@价钱 float

,@卖出数量 float

as

begin

insert into sales (编号,名称,价钱,卖出数量)

values (@编号,@名称,@价钱,@卖出数量)

end


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

原文地址:https://54852.com/bake/11960261.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存