sql 報:無效的列索引 可能的原因
今天遇到了sql報無效的列索引錯誤,在網上找了找問題,基本都在說是sql拼寫錯誤,
基本可以確定這個錯誤一般都是由低階失誤導致的,請注意檢查自己的sql拼寫
按照網上指出的問題去找,沒有和自己錯誤一樣的,最後在移除一個註釋後正常了,
我用的是idea,用ctrl+/ 加的註釋 ,也就是sql前加 --,
不知為何沒有生效,卻成了錯誤源頭,
在此記錄下防止自己忘記,另外其他幾種可能的拼寫錯誤如下
1.佔位符與引數數量不一致
例如當有一個佔位符?,但是再此處傳入兩個引數#{a},#{b},
2.sql拼接錯誤
如對於模糊查詢條件 a的拼接
a like '%'||#{a}||'%'
注意每個%都要用 '' 包括起來 ,與引數用 || 拼接
當然也可以這樣寫 a like CONCAT(CONCAT('%', #{a}), '%')
3.錯誤的註釋
這就是我遇到的情況了,我把不用的sql通過 --註釋掉,
但是註釋卻沒有正常生效,導致無效的列索引出現,刪掉後就好了
當然也可能有其他原因導致這種情況
相關推薦
sql 報:無效的列索引 可能的原因
今天遇到了sql報無效的列索引錯誤,在網上找了找問題,基本都在說是sql拼寫錯誤, 基本可以確定這個錯誤一般都是由低階失誤導致的,請注意檢查自己的sql拼寫 按照網上指出的問題去找,沒有和自己錯誤一樣的,最後在移除一個註釋後正常了, 我用的是idea,用ctrl+/ 加的註釋 ,也就是s
myBatis set parameters是提示無效列索引
上網查,有說佔位符?的個數和提供的引數的個數不對應,發現我的問題不是這個。對比型別發現也沒有問題。 到最後發現問題在寫模糊查詢的時候: 原來的寫法:'%#{supplierName,,jdbcType=VARCHAR}%'——這就是最終的原因。 現在的寫法:'%' || #
oracle 無效列索引
出現這個問題的原因 罪魁禍首是 ? "select * from INDEX_MOCK im where im.gmt_modify > ? and im.gmt_modify <? and rownum <= ? order by im
原因及解決:java.sql.SQLException: 無效的列型別: 1111
Mybatis中出現java.sql.SQLException: 無效的列型別: 1111 原因1:where 佔位符被傳遞了 NULL 在其他的部落格和一些論壇中有人說還有這個原因:where 後欄位既有String又有Integer造成型別衝突(經測試,不存在這個原因) &n
mybatis報錯:java.sql.SQLException: 無效的列型別: 1111
java.sql.SQLException: 無效的列型別: 1111 at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3900) at oracle.jdbc.
mybatis向oracle新增資料報:java.sql.SQLException: 無效的列型別: 1111
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping
java.sql.SQLException: 無效的列索引
“無效的列索引”其實是個低階的錯誤,原因無非幾個: 1、sql串的?號數目和提供的變數數目不一致: 例如:jdbcTemplate.update(sql, new Object[]{newState,oldState}); 如果sql裡面有1個?號,Obj
oracle儲存過程報"無效的列索引"的錯誤
因為是新手上路,所以犯的錯誤也很簡單,所以就貼一小部分相關的程式碼了. final String sql = "{call pkg_bd_interface.sp_bd_interface(?,?,?)}";CallableStatement call;call
DB2 sql報錯後查證原因與解決問題的方法
sta form con ica before lac tail reference ima 1.對於執行中的報錯,可以在db2命令行下運行命令 : db2=>? SQLxxx 查看對應的報錯原因及解決方法。 2.錯誤SQL0206N SQLSTATE=42703
【問題】sql數據庫報無效的數據證書,需重新安裝
選擇 打開 後悔 無效 獨立 沒有 應該 今天 common 事情的經過: 今天打開sql2014數據庫,沒有成功運行,但是給我彈出一個“無效的數據證書,需要重新安裝!”提示。什麽情況。為什麽,應該是前一天弄vs導致的。因為升級了vs2017,所以把以前的東西做了刪除卸載
java.sql.SQLException: 無效的列類型: 1111
tin bug ted 映射 arc mark bsp iba 使用 在使用Mybaits Plus更新數據時報錯: 2018-09-05 10:55:40.712 DEBUG 15828 --- [nio-8110-exec-1] c.c.x.s.m.A.updateA
Kylin 幾個sql報錯原因 彙總
Can't create EnumerableAggregate! while executing SQL由distinct count引起的錯誤 null while executing SQLjoin的左右兩個表之間有相互依賴的關係 missing a new
Unity Android IL2CPP 編譯報錯的一種可能原因
Unity 版本 5.6.6f2 在使用 Android 的 IL2CPP 時,發生編譯報錯,報錯內容如下所示: stdout: IL2CPP error (no further information about what managed code was being co
Mybatis 報無效的列型別 兩種解決辦法
最近忙,好久沒來寫博文了,慚愧。今天遇到如題的問題,就是在mybatis 插入oracle資料庫空值的報的異常: org.springframework.jdbc.UncategorizedSQLException: Error setting null par
Cause: java.sql.SQLException: 無效的列型別: 1111解決
在頁面提交資料時,出現如下錯誤資訊: Error setting null for parameter #7 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a dif
java.sql.SQLException: 無效的列型別: 錯誤解析
八月 16, 2018 8:47:40 下午 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service()
1111; nested exception is java.sql.SQLException: 無效的列型別: 1111
查詢了一下 一些資料說是: 引用 MyBatis 插入空值時,需要指定JdbcType mybatis insert空值報空值異常,但是在pl/sql不會提示錯誤,主要原因是mybatis無法進行轉換,之後已檢視程式碼發現,果然自己的欄位有空值, #{item.device
使用iBatis中報 java.sql.SQLException: 無效的列型別異常
1. <!--Content表 插入應的記錄到資料庫中 --> 2. < insert id = "insertContent" parameterClass = "com.u
Caused by: java.sql.SQLException: 無效的列型別: 16 及oracle 方言選擇問題。
Caused by: java.sql.SQLException: 無效的列型別: 16 oracle,hibernate 儲存資料時提示的錯誤。 is_deleted 預設值為 0 ,沒有主動賦值給他。儲存時報錯。但是另外的類就沒問題。 但是兩者的寫法,一個是註解寫在私
MySQL執行計劃優化(SQL優化,避免索引無效的小技巧)
如果以下場景,及時相關欄位建立了索引,也無法使用索引,在寫SQL時要避免以下情況的出現 1.查詢條件中 建立索引的欄位列 最左一萬用字元 % 開始,例如 where a like '%xx'; 2.查詢條件中 建立索引的欄位列 使用 IS NULL 或 IS NOT NULL; 3.查詢