oracle報錯 ORA 01722 無效數字

2021-10-11 02:44:25 字數 951 閱讀 2517

在乙個查詢語句中報錯:無效數字

上面紅色圈出來的子查詢語句,執行結果如下:

這是乙個字串型別的字段,在整個查詢語句中會被編譯為『261,301』,這是乙個字串,前面的c.role_id欄位是number型別,in關鍵字前後的字段型別不一致,導致報錯。

解決方法是把紅色圈出來的子查詢結果轉成表的形式,語句如下:

select t2.* from tp_user_info t1, table(split(t1.role_id,',')) t2 where t1.name = 'user1'

執行結果如下:

修改完成後,完整的查詢語句:

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 = 0

and c.role_id in ( select t2.* from tp_user_info t1, table(split(t1.role_id,',')) t2 where t1.name = 'user1')

order by sort_num

這時候再執行語句,就不再報錯了。

oracle啟動報錯 ORA 03113

ora 03113 end of file on communication channel 解決辦法 登入 sqlplus nolog sql conn assysdba 關閉資料庫 sql shutdown abort 或 shutdown immediate 裝載資料庫 sql startup...

oracle啟動報錯 ORA 03113

oracle 12c 資料庫,進行了大量的插入操作,導致資料庫卡死,啟動失敗。關鍵報錯資訊 ora 03113 end of file on communication channel 原來是大批量的資料插入導致閃回空間不足,最常用的辦法刪除不需要的歸檔日誌檔案或者增加閃回空間大小 db recov...

oracle報錯ORA 01722無效數字處理

原因 to number中數值有無法轉為數值型的,比如例子的 nan 字元 或者還有其他非法字元在資料裡。解決方法1 剔除無效字元 如 nan 注意這裡舉例的 nan 是示例資料中的乙個字元,不是空值nan 並且在末尾where再to number一次。select from select to n...