クエリステートメントでエラーが報告されました:無効な番号
上記の赤丸で囲まれたサブクエリステートメントの実行結果は次のとおりです。
これは文字列型フィールドであり、クエリステートメント全体で「261,301」にコンパイルされます。これは文字列です。前のC.ROLE_IDフィールドは型番号であり、inキーワードの前後のフィールド型に一貫性がありません。エラーが発生します。
解決策は、赤で囲まれたサブクエリの結果を表形式に変換することです。ステートメントは次のとおりです。
TP_USER_INFO t1、table(split(t1.ROLE_ID、 '、'))t2 WHERE t1.NAME = 'user1'からt2。*を選択します。
実行結果は以下のとおりです。
変更が完了した後、完全なクエリステートメント:
SELECT A. * FROM TP_RIGHT A
INNER JOIN tp_role_right B ON A.CODE = B.RIGHT_CODE AND NODE_TYPE = 0 AND A.LEVELS = 1
INNER JOIN TP_ROLE C ON B.ROLE_ID = C.ROLE_ID
where A.SYSFLAG = 0andC
。 ROLE_ID in(selectt2。* from TP_USER_INFO t1、table(split(t1.ROLE_ID、 '、'))t2 WHERE t1.NAME = 'user1')
ORDER BY SORT_NUM
この時点でステートメントを実行すると、エラーは報告されなくなります。