改写成hive语法 delete from "rpt_comm_yzf_ljh_yue_fee_show" where "month_id" = @month_id and "data_date" = @data_date and "is_flag" = 8;
时间: 2023-09-28 16:05:25 浏览: 50
抱歉,Hive 不支持使用 @ 参数占位符。应该将语句改写为:
```
DELETE FROM rpt_comm_yzf_ljh_yue_fee_show
WHERE month_id = 'your_month_id'
AND data_date = 'your_data_date'
AND is_flag = 8;
```
其中,'your_month_id' 和 'your_data_date' 表示你需要删除的数据的月份和日期。请将其替换为实际的值。
相关问题
将下面代码改写成hive create procedure "rptdev"."sp_wjq_jf_value_dhfz_show"( in @data_date integer default cast("dateformat"("now"()-1,'yyyymmdd') as integer), in @is_run_flag1 integer default 1, in @is_run_flag2 integer default 10 ) on exception resume begin declare @stat_date varchar(8); --统计日期 declare @month_id integer; --统计月份 declare @month_first_date varchar(8); --统计月的第一天 set @stat_date = convert(varchar(8),@data_date); set @month_id = @data_date/100; set @month_first_date = "dateformat"(@data_date,'yyyymm01'); --统计月的第一天 truncate table "rptdev"."rpt_wjq_jf_value_dhfz_list"; insert into "rpt_wjq_jf_value_dhfz_list"( "cust_id","cust_name","price","gift_code","gift_name" ) select "cust_id","cust_name","price","gift_code","gift_name" --into rpt_wjq_jf_value_dhfz_list from "zwfxdev"."TB_COMM_CM_INT_USE_GIF_ALL" where convert(date,"change_date") >= @month_first_date and convert(date,"change_date") <= @stat_date; end
下面是改写成Hive存储过程的代码:
```
CREATE PROCEDURE `rptdev`.`sp_wjq_jf_value_dhfz_show`(
IN data_date INT,
IN is_run_flag1 INT DEFAULT 1,
IN is_run_flag2 INT DEFAULT 10
)
BEGIN
DECLARE stat_date STRING; --统计日期
DECLARE month_id INT; --统计月份
DECLARE month_first_date STRING; --统计月的第一天
SET stat_date = CAST(data_date AS STRING);
SET month_id = data_date / 100;
SET month_first_date = DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(CAST(month_id AS STRING), 'yyyyMM')), 'yyyyMMdd'); --统计月的第一天
TRUNCATE TABLE rptdev.rpt_wjq_jf_value_dhfz_list;
INSERT INTO TABLE rptdev.rpt_wjq_jf_value_dhfz_list(
cust_id,
cust_name,
price,
gift_code,
gift_name
)
SELECT
cust_id,
cust_name,
price,
gift_code,
gift_name
FROM zwfxdev.TB_COMM_CM_INT_USE_GIF_ALL
WHERE CAST(change_date AS DATE) >= CAST(month_first_date AS DATE)
AND CAST(change_date AS DATE) <= CAST(stat_date AS DATE);
END;
```
需要注意的是,Hive中不支持在存储过程中使用异常处理语句,因此将原来的 `ON EXCEPTION RESUME` 去掉了。此外,Hive中也不支持在存储过程中使用 `TRUNCATE TABLE` 语句,因此将其改为了 `TRUNCATE TABLE ...` 的形式。还有一个需要注意的地方是,Hive中的日期格式化函数与SQL Server中的略有不同,因此将 `DATEFORMAT` 改为了 `DATE_FORMAT`。
阅读全文