我有一个为后端数据库查询之一创建此 SQL 的网站(为问题简化它)
Select *
from People
where Status = 'Active'
and GroupId = 103403
and (TeamName in ('TEAM1', 'TEAM2'))
and DELETED is NULL
这很好用。我现在需要添加一些新的团队名称,像这样
Select *
from People
where Status = 'Active'
and GroupId = 103403
and (TeamName in ('TEAM1', 'TEAM2','TEAM3', 'TEAM4'))
and DELETED is NULL
我得到这个错误:
ORA-01722: 无效号码
奇怪的是,“TEAM3”或“TEAM4”似乎没有什么问题,就好像我这样做一样
Select *
from People
where Status = 'Active'
and GroupId = 103403
and (TeamName in ('TEAM3', 'TEAM4'))
and DELETED is NULL
它也可以正常工作。因此,只有当我有一定数量的团队处于“IN”状态时,它才会中断。
关于问题可能是什么的任何建议。当我用谷歌搜索那个 Oracle 错误时,我看到人们是否由于数据类型不匹配而在他们的 SQL 中有一些转换逻辑作为根本原因,但我这里没有任何转换逻辑。