首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-01722数字到varchar比较错误

ORA-01722数字到varchar比较错误
EN

Stack Overflow用户
提问于 2021-03-22 23:20:24
回答 1查看 28关注 0票数 0

我有一个包含以下数据的表,本想使用"IN“子句将此表数据与另一个表进行比较,但抛出ORA-01722错误,

代码语言:javascript
复制
SQL> desc a
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SCOPE                                              VARCHAR2(20)
 PART_LIST                                          VARCHAR2(2000)

SQL> select part_list from a ;

PART_LIST
--------------------------------------------------------------------------------
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16


SQL> select partition_name from dba_Tab_partitions where partition_position in (select trim((part_list) from a);

                                                                           
ERROR at line 1:
ORA-01722: invalid number

向Kannan致敬

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-22 23:29:42

您需要首先将逗号分隔的字符串转换为行,然后才能像这样使用它们。请尝试下面的查询。

代码语言:javascript
复制
   select partition_name from dba_Tab_partitions where partition_position in (
   select  to_number(trim(regexp_substr(PART_LIST,'[^,]+', 1, level) )) value
   from a
   connect by regexp_substr(PART_LIST, '[^,]+', 1, level) is not null
   )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66748972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档