栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【表名或者表分区名作为变量】存储过程遇到表名或者表分区名作为变量

【表名或者表分区名作为变量】存储过程遇到表名或者表分区名作为变量

文章目录
  • 表名或者表分区名作为变量
  • 正确的写法

表名或者表分区名作为变量

当编写存储过程时,遇到表分区名需要通过变量传入,如遇到需要定时清理分区表的数据时,每次需要清理的表分区名字都是通过与当前时间计算得出的,那如果在存储过程的sql 直接使用变量传入,sql是无法识别的,直接报错。
例如:

set partName = P2101;
insert into hisTableName  select * from currentTableName PARTITION(partName);

上面sql ,表分区名是变量,sql是无法识别,直接报错的。
又例如,当表名是变量时,也是无法识别的。

set  currentTableName = t_trans_log;
insert into hisTableName  select * from currentTableName ;
正确的写法

需要通过 concat 来拼接sql和变量,然后通过PREPARE stmt2 from @sqlStmt2;然后执行sql.
应是如下图:

set @sqlStmt3 = CONCAT("alter table ", currentTableName, " TRUNCATE1 PARTITION  ",partName ,";") ;
			PREPARE stmt2 from @sqlStmt2;
			EXECUTE stmt2;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号