バックエンドデータベースクエリの1つに対してこのSQLを作成するWebサイトがあります(質問のために単純化しています)
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に変換ロジックが根本原因として含まれているかどうかがわかりますが、ここには変換ロジックがありません。