Hive/Inceptor SQL之工作记录

1、修改字段类型及长度

alter table t_user change column id id decimal(38,0);

2、事务表删除重复记录

-- 获取
SELECT cst_no,count(1)
FROM tb_user
WHERE batch_date='2021-11-24'
GROUP BY cst_no
HAVING count(1)>1;
-- 删除
DELETE FROM (
SELECT row_number() over(PARTITION BY cst_no) rn , *
FROM tb_user
WHERE batch_date='2021-11-24'
AND cst_no='58F291604B29DC8C40B2BD5FDF3B3377'
) tmp
WHERE rn > 1
;

3、inceptor之存储过程

CREATE OR REPLACE PACKAGE MYDB.BRAINS IS
     PROCEDURE PROC_STD_DELETE_TRANS(IN_SCHEMA_NAME IN STRING, OC_STATUS OUT STRING);
END;
/

CREATE OR REPLACE PACKAGE BODY MYDB.BRAINS IS
    PROCEDURE PROC_STD_DELETE_TRANS
      (IN_SCHEMA_NAME IN STRING
       , OC_STATUS OUT STRING) IS
          C_SQL STRING;
     BEGIN
	     BEGIN TRANSACTION;
          FOR AA IN (Select DISTINCT data_date From bp_std_trans_fd_tmp_del ORDER BY data_date) LOOP
          	C_SQL := 'DELETE FROM bp_std_trans_fd
					WHERE data_date ="'||AA.data_date||'" AND trxserno IN ( SELECT trxserno FROM bp_std_trans_fd_tmp);'
               EXECUTE IMMEDIATE C_SQL;
          END LOOP;
         COMMIT;
     END;
END;

调用方法:

set transaction.type= inceptor;
DECLARE
    IN_SCHEMA_NAME STRING;
    OC_STATUS STRING;
BEGIN
    MYDB.BRAINS.PROC_STD_DELETE_TRANS(IN_SCHEMA_NAME,OC_STATUS)
END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值