oracle - 查找所有子分区名称
问题描述
该表根据列(实例)进行了子分区,其值可以是“1”或“2”。想要列出所有包含 INSTANCE 值的子分区名称为 '2'
select * from user_tab_subpartitions sp where table_name='TEST' and sp.NUM_ROWS >0
and to_char(HIGH_VALUE)='2';
错误
ORA-00932: inconsistent datatypes: expected CHAR got LONG
HIGH_VALUE 是 LONG() 类型
解决方案
set serveroutput on;
DECLARE
high_val VARCHAR2(32767);
BEGIN
FOR rec IN (select PARTITION_NAME,SUBPARTITION_NAME,HIGH_VALUE from user_tab_subpartitions sp where table_name='TEST' and sp.NUM_ROWS >0) LOOP
high_val := rec.HIGH_VALUE;
IF high_val LIKE '2%' THEN
dbms_output.put_line(rec.SUBPARTITION_NAME);
END IF;
END LOOP;
END;
推荐阅读
- java - 在字符串中查找缺失的单词
- bash - shell - 正确处理引用的参数
- python - 该算法的时间复杂度:Word Ladder
- ruby - 无法使用 selenium hub docker 和 ruby watir 更改 chrome 的默认下载目录
- typescript - 对象可能为空 - 即使在空检查之后
- python - 德拜理论的 Python 代码给出了语法错误
- c - 泛型变量树错误无限循环
- haskell - Haskell - 使用数据类型的函数中的非详尽模式
- python - 正则表达式和熊猫:在名称匹配时提取部分字符串
- c++ - 没有“glu.h”和“windows.h”,GLFW 无法编译