【发布时间】:2016-04-25 22:16:14
【问题描述】:
我有: 分隔列,如1:2:3:。我想把它输入1,2,3。我的查询看起来像,
select name
from status where id IN (SELECT REPLACE(NEXT_LIST,':',',')
FROM status);
但我遇到了错误
ORA-01722: 无效号码
【问题讨论】:
-
究竟是哪一列?你能展示一些示例数据吗?
-
替换函数用于更新字符串的内容,我认为 id 列是数字字段,这就是它给出错误的原因。
-
column next_list 有这样的数据 '2:3:4' 和 id 列有 1,2,3,4 和 name 列有这样的 thamarai, dmitry,raffaello
-
在ID列中,每一行包含一个数字,对吧?在这种情况下,您的查询是不可能的,因为您检查是否例如“1” 在 “1,2,3” 中。你可以
to_charID ind 将其与LIKE的语句进行比较 -
顺便说一句:您对表格的查询也不正确。您当然不会查询表状态以获取 ID,以便再次查询它以获取名称。所以这是一个奇怪的例子。表中的 NEXT_LIST 列是否只有一行?请显示正确的查询。