oracle存储过程语法二

本文介绍了一个使用PL/SQL复合数据类型的示例,包括记录类型定义、游标使用及更新、合并操作等,展示了如何通过复合数据类型提高代码效率。
type typeaaaa is record(
     column1        table1.column1%type,     
     column2        table1.column2%TYPE,
     column3        table1.column3%type,
     column4        table1.column4%TYPE
      );

   record1 typeaaaa;
   
   cursor cur_info is
          SELECT column1, column2, column3, column4
            FROM table1 A;
   
   BEGIN
 
 open cur_info;
 fetch cur_info into record1;
 while (cur_info%found) LOOP
 
 UPDATE (SELECT TD.a1,
               TD.a2,
               TD.a3,
               B.ba1,
               B.ba2,
               B.ba3
          FROM table_a TD, table_b B
         WHERE TD.no = B.no
           AND TD.date = B.date)
   SET a1 = ba1, a2 = ba2, a3 = ba3;
   
   
   UPDATE table1 A
      SET column1   = 1,
          column2 = '2',
          column3      = 0
    WHERE NOT EXISTS (SELECT NULL
             FROM table2 B
            WHERE A.no = B.no
              AND A.date = B.date)
      AND column1 = 'xxxxx';
   
   
    MERGE INTO tablea AA
 USING (SELECT column1, column2,column3
          FROM tableb) BB
 ON (AA.column1 = BB.column1 AND AA.column2 = BB.column2 AND AA.column3 = BB.column3)
 WHEN MATCHED THEN
   UPDATE
      SET AA.column5    = BB.column5,
          AA.column6 = BB.column6;

   fetch cur_info into record1;
  end loop;
   

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值