91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis查詢oracle?long類型錯誤怎么解決

發布時間:2023-03-30 11:44:30 來源:億速云 閱讀:119 作者:iii 欄目:開發技術

這篇文章主要介紹“mybatis查詢oracle long類型錯誤怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mybatis查詢oracle long類型錯誤怎么解決”文章能幫助大家解決問題。

    mybatis查詢oracle long類型的坑

    問題描述

    最近在開發中,遇到查詢oracle long類型異常的問題,需求是查詢一個字段中含有函數的索引的內容,然后通過mybatis獲取返回的內容封裝成對象,其中long類型在對象中用String接收,COLUMN_EXPRESSION字段為long類型,供后續業務使用,自定義查詢語句如下

    select a.COLUMN_EXPRESSION, a.COLUMN_POSITION from USER_IND_EXPRESSIONS a
    inner join USER_IND_COLUMNS b on b.INDEX_NAME = a.INDEX_NAME
    and b.TABLE_NAME = a.TABLE_NAME and b.COLUMN_POSITION = a.COLUMN_POSITION
    where b.COLUMN_NAME like 'SYS_NC%$'

    報錯:Cause: java.sql.SQLException: 流已被關閉 ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17027]; 流已被關閉

    解決辦法

    如果可以修改字段類型情況下,建議改成BLOB,CLOB,NLOB,非常不建議使用LONG;

    在無法修改字段類型情況下,一定要將LONG類型字段放在查詢字段的最后(COLUMN_EXPRESSION放在最后),例如

    select a.COLUMN_POSITION, a.COLUMN_EXPRESSION from USER_IND_EXPRESSIONS a
    inner join USER_IND_COLUMNS b on b.INDEX_NAME = a.INDEX_NAME
    and b.TABLE_NAME = a.TABLE_NAME and b.COLUMN_POSITION = a.COLUMN_POSITION
    where b.COLUMN_NAME like 'SYS_NC%$'

    收獲: 

    Oracle中如果是數值,用NUMBER替換LONG,如果是大對象可以用BLOB,CLOB,NLOB替換LONG;其實查詢時還可以通過存儲過程將LONG轉成VARCHAR2返回,個人不建議使用存儲過程。

    mybatis處理Oracle中的LONG字段

    當使用mybatis查詢oracle中帶有LONG數據類型的時候,實體類使用的是String類型來接收.

    一般會報兩種錯誤:

    • 1.無效字段類型  

    • 2.流已被關閉

    處理方法

    第一種方式:不使用LONG類型(廢話)

    第二種方式:自定義函數將LONG類型轉換為VARCHAR類型(百度,方法一大堆,都是)

    第三種方式:首先在Mapper.xml文件中自定義resultMap映射關系,將LONG類型字段的jdbcType設置為LONGVARBINARY

    <resultMap id="BaseResultMap" type="com.libstar.tc.dto.Biblios" >
        <result column="name" property="bookrecno" jdbcType="VARCHAR" />
        <result column="content" property="content" jdbcType="LONGVARBINARY" />
    </resultMap>

    然后自定義SQL查詢數據,在寫SQL的時候要注意了,將LONG類型的那個字段寫在最后,像這樣

    SELECT ID,NAME,CONTENT FROM XXX;其中CONTENT字段為LONG類型字段.

    即可成功~

    關于“mybatis查詢oracle long類型錯誤怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    车险| 博客| 常熟市| 苏尼特左旗| 磴口县| 明溪县| 平湖市| 津南区| 儋州市| 平陆县| 隆回县| 天津市| 克东县| 祁东县| 榆林市| 资讯| 玉环县| 昌宁县| 贡嘎县| 左权县| 泰来县| 南京市| 大庆市| 沧源| 筠连县| 大方县| 广饶县| 太仆寺旗| 乌兰浩特市| 梨树县| 岢岚县| 雷山县| 云梦县| 库伦旗| 佛山市| 成安县| 铜梁县| 栾城县| 田阳县| 古交市| 嘉荫县|