转:oracleorahome92agent服务启动异常

本文介绍了一个Oracle存储过程的设计,用于查询具有相同结构的表,并根据日期添加数据。如果指定日期的数据已存在,则先删除原有记录再插入新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     oracle存储过程,实现查询相同结构的表数据,按日期进行添加,若表中某日的数据已存在则将此条数据删除并添加以此数据id为键的新的数据。

 

  基本结构:

  create or replace procedure DATAANALYSIS_DAY_proc (dqbm in varchar2, strTime in varchar2) is

  type cur is ref cursor; --定义游标

  TABLE_CUR cur;  -- 游标别称

  tabel_name_count number; --定义number数据类型

  isXExsite number; -- 定义number数据类型

 BEGIN ----1

     Open TABLE_CUR for  -- 打开游标

           'select count(table_name) from user_tables table_name like '''||UPPER(dqBM)||'HISTORY%' ';

     FETCH TABLE_CUR INTO table_name_count; --将游标中的值赋给table_name_count变量。

     CLOSE TABLE_CUR; --关闭游标

  if table_name_count > 0 --判断表是否已存在

    then

        begin ----2

          for i in 1..table_name_count -- 定义循环

             LOOP

              ---使用游标获取数据

               Open TABLE_CUR for  -- 打开游标

                 'select count(*) from '||dqBM||'analysis'||i||' where id like '''||strTime||'%''';

               FETCH TABLE_CUR INTO isExite; --将游标中的值赋给table_name_count变量。

               CLOSE TABLE_CUR; --关闭游标

               if isExite > 0

                  then  --if后必须跟then

                  begin  --- 3

                     --执行sql语句
                     execute immediate
'delete from  '||dqBM||'analysis'||i||'  where id like '''||strTime||'%''';
                     commit; --提交

                     DBMS_OUTPUT.put_line(strTime||'数据已删除!');  --输出测试语句

                     execute immediate 'insert into analysis'||i||' (select '||strTime||'2, field1,......,field900 from history1 where id like '''||strTime||'%'')  ';

                     commit;--提交

                   end;---3

             else

                   begin --- 4

                       execute immediate 'insert into analysis'||i||' (select '||strTime||'2, field1,......,field900 from history1 where id like '''||strTime||'%'')  ';

                   end; ----4

             end if;

             END LOOP;

        end; -----2

END;  ----1

 

OK,一个简单的存储过程基本完成,敬请拍砖!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值