SQL 练习 Using ,Case

本文展示了如何使用PL/SQL创建存储过程,实现插入数据、条件筛选、聚合查询,并处理异常情况。

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

 

CREATE OR REPLACE PROCEDURE P_B(P_1 IN VARCHAR2, P_2 OUT NUMBER) IS

  STR_SQL VARCHAR2(500);
  P_LINE  NUMBER(10);
  P_STR   VARCHAR2(200);
  P_STR2  VARCHAR2(200);

BEGIN
  P_LINE := 1;

  STR_SQL := 'INSERT INTO TT_EMAIL T(T.KEYID,T.EMAIL_MAIL,T.EMAIL_USER,T.EMAIL_TEL) VALUES (:A,:B,:C,:D)';

  EXECUTE IMMEDIATE STR_SQL
    USING 'A', 'B', 'C', 'D';

  P_LINE := 2;
  P_2    := 123;

  FOR R IN (SELECT T.EMAIL_MAIL, T.EMAIL_USER, T.EMAIL_TEL FROM TT_EMAIL T) LOOP
    DBMS_OUTPUT.PUT_LINE(SQLERRM);
  
    CASE
      WHEN R.EMAIL_TEL = '13800138000' THEN
        P_STR := '138';
      WHEN R.EMAIL_TEL = '10086' THEN
        P_STR := '000';
      ELSE
        P_STR := '其它';
    END CASE;
  END LOOP;

  DBMS_OUTPUT.PUT_LINE(P_STR);
  SELECT COUNT(1)
    INTO P_STR2
    FROM (SELECT CASE
                   WHEN T.EMAIL_MAIL = '1@QQ.COM' THEN
                    '1'
                   WHEN T.EMAIL_MAIL = '2@QQ.COM' THEN
                    '2'
                   ELSE
                    '其它的EMAIL'
                 END AS EMAIL
            FROM TT_EMAIL T) V;
  DBMS_OUTPUT.PUT_LINE(P_STR2);

EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);
  
END P_B;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值