第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中使用ResultSet.getNString或getString來獲取代碼視圖。

在Java中使用ResultSet.getNString或getString來獲取代碼視圖。

夢里花落0921 2023-08-04 18:57:23
我正在嘗試獲取帶有結果集的java 代碼視圖(Oracle)。但是當我使用getStringorgetNString函數時,我只得到一串 32K 字符。視圖的長度大于 100K 個字符。我使用查詢:SELECT * FROM DBA_VIEWS請幫忙。
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

使用 Reader,延遲訪問結果集。


try (Reader reader = rs.getNCharacterStream(...)) {

    if (reader == null) {

        return null;

    }

    StringWriter writer = new StringWriter();

    reader.transferTo(writer);

    return writer.toString();

}

try-with-resources 中允許使用 null reader。


transferTo自 java 10 以來就存在,這里有一個替代方案。


    char[] buf = new buf[1024];

    for (;;) {

        int nread = reader.read(buf);

        if (nread == -1) {

            break;

        }

        writer.write(buf, 0, nread);

    }


查看完整回答
反對 回復 2023-08-04
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

請檢查您的數據庫和驅動程序版本。


getString適用于長度 > 32K 的 LONG 列


例子


SELECT TEXT_LENGTH  FROM DBA_VIEWS where owner = 'SYS' and VIEW_NAME= 'DBA_STREAMS_COLUMNS';


TEXT_LENGTH

-----------

      36331

這剪斷了


 def rs = stmt.executeQuery("SELECT TEXT  FROM DBA_VIEWS where owner = 'SYS' and VIEW_NAME= 'DBA_STREAMS_COLUMNS'")


 while(rs.next())

  {

   String txt = rs.getString(1)  

   println "got txt    ${txt.take(10)}...${txt.reverse().take(10).reverse()}, size: ${txt.length()}"

  }

回報


got txt    select dis...     ) = 0, size: 36331

使用過的版本


Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

DriverVersion 12.1.0.2.0


查看完整回答
反對 回復 2023-08-04
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

我用 ResultSet.getBinariToString 解決了,該函數采用 dba_views.text 的所有字符。感謝你所做的一切。


public String getBinaryToString(String columna){

    try {

            java.io.InputStream is = resultados.getBinaryStream(columna);

            int intValueOfChar;

            String targetString = "";

            while ((intValueOfChar = is.read()) != -1) {

                targetString += (char) intValueOfChar;

            }

            is.close();

            return targetString;

        } catch (SQLException | IOException ex) {

            Logger.getLogger(Base.class.getName()).log(Level.SEVERE, null, ex);

        }

        return null;

}


查看完整回答
反對 回復 2023-08-04
  • 3 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號