Java Code Examples for java.sql.Clob

The following examples show how to use java.sql.Clob. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: mybatis   Source File: NClobTypeHandler.java    License: Apache License 2.0 8 votes vote down vote up
@Override
public String getNullableResult(CallableStatement cs, int columnIndex)
    throws SQLException {
  String value = "";
  Clob clob = cs.getClob(columnIndex);
  if (clob != null) {
    int size = (int) clob.length();
    value = clob.getSubString(1, size);
  }
  return value;
}
 
Example 2
Source Project: jsqsh   Source File: ClobFormatter.java    License: Apache License 2.0 6 votes vote down vote up
public String format (Object value) {
    
    Clob clob = (Clob) value;
    StringBuilder sb = new StringBuilder();
    char []chars = new char[512];
    
    try {
        
        Reader in = clob.getCharacterStream();
        while (in.read(chars) >= 0) {
            
            sb.append(chars);
        }
        
        in.close();
    }
    catch (Exception e) {
        
        /* IGNORED */
    }
    
    return sb.toString();
}
 
Example 3
Source Project: Komondor   Source File: BlobRegressionTest.java    License: GNU General Public License v3.0 6 votes vote down vote up
/**
 * Tests fix for BUG#20453671 - CLOB.POSITION() API CALL WITH CLOB INPUT RETURNS EXCEPTION
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug20453671() throws Exception {
    this.rs = this.stmt.executeQuery("select 'abcd', 'a', 'b', 'c', 'd', 'e'");
    this.rs.next();

    final Clob in = this.rs.getClob(1);
    final ResultSet locallyScopedRs = this.rs;
    assertThrows(SQLException.class, "Illegal starting position for search, '0'", new Callable<Void>() {
        public Void call() throws Exception {
            in.position(locallyScopedRs.getClob(2), 0);
            return null;
        }
    });
    assertThrows(SQLException.class, "Starting position for search is past end of CLOB", new Callable<Void>() {
        public Void call() throws Exception {
            in.position(locallyScopedRs.getClob(2), 10);
            return null;
        }
    });

    assertEquals(1, in.position(this.rs.getClob(2), 1));
    assertEquals(2, in.position(this.rs.getClob(3), 1));
    assertEquals(3, in.position(this.rs.getClob(4), 1));
    assertEquals(4, in.position(this.rs.getClob(5), 1));
    assertEquals(-1, in.position(this.rs.getClob(6), 1));
}
 
Example 4
Source Project: gemfirexd-oss   Source File: SQLClob.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Set the value from an non-null Java.sql.Clob object.
 */
void setObject(Object theValue)
    throws StandardException
{
    Clob vc = (Clob) theValue;
    
    try {
        long vcl = vc.length();
        if (vcl < 0L || vcl > Integer.MAX_VALUE)
            throw this.outOfRange();
        
        setValue(new ReaderToUTF8Stream(vc.getCharacterStream(),
                (int) vcl, 0, TypeId.CLOB_NAME), (int) vcl);
        
    } catch (SQLException e) {
        throw dataTypeConversion("DAN-438-tmp");
   }
}
 
Example 5
Source Project: spring4-understanding   Source File: DefaultLobHandler.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException {
	logger.debug("Returning CLOB as character stream");
	if (this.wrapAsLob) {
		Clob clob = rs.getClob(columnIndex);
		return clob.getCharacterStream();
	}
	else {
		return rs.getCharacterStream(columnIndex);
	}
}
 
Example 6
Source Project: search-spring-boot-starter   Source File: CommonUtils.java    License: Apache License 2.0 5 votes vote down vote up
public static String toString(Object[] args) {
    if (args == null || args.length == 0) {
        return "[]";
    } else {
        JsonArray out = new JsonArray();
        for (int i = 0; i < args.length; i++) {
            Object value = args[i];
            if (value == null) {
                out.add("null");
            } else {
                if (value instanceof String) {
                    String text = (String) value;
                    if (text.length() > 100) {
                        out.add(text.substring(0, 97) + "...");
                    } else {
                        out.add(text);
                    }
                } else if (value instanceof Number) {
                    out.add((Number) value);
                } else if (value instanceof Date) {
                    String str = DateUtils.formatDateTime((Date) value);
                    out.add(str);
                } else if (value instanceof Boolean) {
                    out.add((Boolean) value);
                } else if (value instanceof InputStream) {
                    out.add("<InputStream>");
                } else if (value instanceof NClob) {
                    out.add("<NClob>");
                } else if (value instanceof Clob) {
                    out.add("<Clob>");
                } else if (value instanceof Blob) {
                    out.add("<Blob>");
                } else {
                    out.add('<' + value.getClass().getName() + '>');
                }
            }
        }
        return out.toString();
    }
}
 
Example 7
Source Project: gemfirexd-oss   Source File: TradeBuyOrderDMLStmtJson.java    License: Apache License 2.0 5 votes vote down vote up
protected void addBatchInsert(PreparedStatement stmt, int oid, int cid, int sid, int qty,
    String status, Timestamp time, BigDecimal bid, int tid, boolean isPut) throws SQLException {
  
  JSONObject json = new JSONObject();
  String jsonLog ="";
  
  if (SQLTest.hasJSON &&  ! SQLHelper.isDerbyConn(stmt.getConnection()) ) {
         json = getJSONObject(oid,cid,sid,qty,status,time,bid,tid);
         jsonLog = ",JSON_DETAILS: " +json.toJSONString();
  }
  
  Log.getLogWriter().info( (SQLHelper.isDerbyConn(stmt.getConnection())? "Derby - " :"gemfirexd - "  ) +  (isPut ? "putting " : "inserting ") + " into trade.buyorders with data OID:" + oid +
      ",CID:"+ cid + ",SID:" + sid + ",QTY:" + qty + ",STATUS:" + status +
      ",TIME:"+ time + ",BID:" + bid + ",TID:" + tid + jsonLog);
  
  stmt.setInt(1, oid);
  stmt.setInt(2, cid);
  stmt.setInt(3, sid);
  stmt.setInt(4, qty);
  stmt.setBigDecimal(5, bid);
  stmt.setTimestamp(6, time);
  stmt.setString(7, status);       
  stmt.setInt(8, tid);
  if (SQLTest.hasJSON &&  ! SQLHelper.isDerbyConn(stmt.getConnection()) ) {  Clob jsonClob = stmt.getConnection().createClob();
  jsonClob.setString(1, json.toJSONString());
  stmt.setClob(9, jsonClob); }
  stmt.addBatch();
}
 
Example 8
Source Project: jdk8u_jdk   Source File: BaseRowSetTests.java    License: GNU General Public License v2.0 5 votes vote down vote up
@DataProvider(name = "testAdvancedParameters")
private Object[][] testAdvancedParameters() throws SQLException {

    byte[] bytes = new byte[10];
    Ref aRef = new SerialRef(new StubRef("INTEGER", query));
    Array aArray = new SerialArray(new StubArray("INTEGER", new Object[1]));
    Blob aBlob = new SerialBlob(new StubBlob());
    Clob aClob = new SerialClob(new StubClob());
    Reader rdr = new StringReader(query);
    InputStream is = new StringBufferInputStream(query);;
    brs = new StubBaseRowSet();
    brs.setBytes(1, bytes);
    brs.setAsciiStream(2, is, query.length());
    brs.setRef(3, aRef);
    brs.setArray(4, aArray);
    brs.setBlob(5, aBlob);
    brs.setClob(6, aClob);
    brs.setBinaryStream(7, is, query.length());
    brs.setUnicodeStream(8, is, query.length());
    brs.setCharacterStream(9, rdr, query.length());

    return new Object[][]{
        {1, bytes},
        {2, is},
        {3, aRef},
        {4, aArray},
        {5, aBlob},
        {6, aClob},
        {7, is},
        {8, is},
        {9, rdr}
    };
}
 
Example 9
Source Project: lams   Source File: OracleLobHandler.java    License: GNU General Public License v2.0 5 votes vote down vote up
@Override
public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException {
	logger.debug("Returning Oracle CLOB as ASCII stream");
	Clob clob = rs.getClob(columnIndex);
	initializeResourcesBeforeRead(rs.getStatement().getConnection(), clob);
	InputStream retVal = (clob != null ? clob.getAsciiStream() : null);
	releaseResourcesAfterRead(rs.getStatement().getConnection(), clob);
	return retVal;
}
 
Example 10
Source Project: java-technology-stack   Source File: DefaultLobHandler.java    License: MIT License 5 votes vote down vote up
@Override
public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException {
	logger.debug("Returning CLOB as ASCII stream");
	if (this.wrapAsLob) {
		Clob clob = rs.getClob(columnIndex);
		return clob.getAsciiStream();
	}
	else {
		return rs.getAsciiStream(columnIndex);
	}
}
 
Example 11
@Override
public Clob getClob(int parameterIndex) throws SQLException {
    try {
        if (this.wrappedStmt != null) {
            return ((CallableStatement) this.wrappedStmt).getClob(parameterIndex);
        }
        throw SQLError.createSQLException(Messages.getString("Statement.AlreadyClosed"), MysqlErrorNumbers.SQL_STATE_GENERAL_ERROR,
                this.exceptionInterceptor);

    } catch (SQLException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }
    return null;
}
 
Example 12
Source Project: lams   Source File: DefaultLobHandler.java    License: GNU General Public License v2.0 5 votes vote down vote up
@Override
public void setClobAsCharacterStream(
		PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength)
		throws SQLException {

	if (streamAsLob) {
		if (characterStream != null) {
			if (contentLength >= 0) {
				ps.setClob(paramIndex, characterStream, contentLength);
			}
			else {
				ps.setClob(paramIndex, characterStream);
			}
		}
		else {
			ps.setClob(paramIndex, (Clob) null);
		}
	}
	else if (wrapAsLob) {
		if (characterStream != null) {
			ps.setClob(paramIndex, new PassThroughClob(characterStream, contentLength));
		}
		else {
			ps.setClob(paramIndex, (Clob) null);
		}
	}
	else if (contentLength >= 0) {
		ps.setCharacterStream(paramIndex, characterStream, contentLength);
	}
	else {
		ps.setCharacterStream(paramIndex, characterStream);
	}
	if (logger.isDebugEnabled()) {
		logger.debug(characterStream != null ? "Set character stream for CLOB with length " + contentLength :
				"Set CLOB to null");
	}
}
 
Example 13
Source Project: lucene-solr   Source File: ClobTransformer.java    License: Apache License 2.0 5 votes vote down vote up
private String readFromClob(Clob clob) {
  Reader reader = FieldReaderDataSource.readCharStream(clob);
  StringBuilder sb = new StringBuilder();
  char[] buf = new char[1024];
  int len;
  try {
    while ((len = reader.read(buf)) != -1) {
      sb.append(buf, 0, len);
    }
  } catch (IOException e) {
    DataImportHandlerException.wrapAndThrow(DataImportHandlerException.SEVERE, e);
  }
  return sb.toString();
}
 
Example 14
Source Project: spring4-understanding   Source File: DefaultLobHandler.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public void setClobAsString(PreparedStatement ps, int paramIndex, String content)
		throws SQLException {

	if (streamAsLob) {
		if (content != null) {
			ps.setClob(paramIndex, new StringReader(content), content.length());
		}
		else {
			ps.setClob(paramIndex, (Clob) null);
		}
	}
	else if (wrapAsLob) {
		if (content != null) {
			ps.setClob(paramIndex, new PassThroughClob(content));
		}
		else {
			ps.setClob(paramIndex, (Clob) null);
		}
	}
	else {
		ps.setString(paramIndex, content);
	}
	if (logger.isDebugEnabled()) {
		logger.debug(content != null ? "Set string for CLOB with length " + content.length() :
				"Set CLOB to null");
	}
}
 
Example 15
/**
 * Tests the ClobWriter.write(String str, int off, int len) method
 **/
public void testClobCharacterWrite3ParamString() throws Exception
{
    PreparedStatement stmt3 = prepareStatement(
        "SELECT c FROM testBlobX1 WHERE a = 1");
    ResultSet rs3 = stmt3.executeQuery();
    rs3.next();
    Clob clob = rs3.getClob(1);
    assertTrue("FAIL -- clob is NULL", clob != null);
    Writer clobWriter = clob.setCharacterStream(1L);
    clobWriter.write(unicodeTestString, 0, unicodeTestString.length());
    clobWriter.close();

    PreparedStatement stmt4 = prepareStatement(
        "UPDATE testBlobX1 SET c = ? WHERE a = 1");
    stmt4.setClob(1,  clob);
    stmt4.executeUpdate();
    stmt4.close();

    rs3.close();
    rs3 = stmt3.executeQuery();
    assertTrue("FAIL -- clob not found", rs3.next());

    clob = rs3.getClob(1);
    long new_length = clob.length();
    assertEquals("FAIL -- wrong clob length", unicodeTestString.length(), new_length);

    // Check contents ...
    Reader lStream = clob.getCharacterStream();
    assertTrue("FAIL - Clob and buffer contents do not match",
            compareClobReader2CharArray(
                unicodeTestString.toCharArray(),
                lStream));

    lStream.close();
    rs3.close();
    stmt3.close();
}
 
Example 16
Source Project: sakai   Source File: ExtractXMLToColumns.java    License: Educational Community License v2.0 5 votes vote down vote up
public Object getValidateSource(String id, ResultSet rs) throws SQLException
{
	ResultSetMetaData metadata = rs.getMetaData();
	byte[] rv = null;
	switch(metadata.getColumnType(1))
	{
	case Types.BLOB:
		Blob blob = rs.getBlob(1);
		if(blob != null)
		{
			rv = blob.getBytes(1L, (int) blob.length());
		}
		else
		{
			log.info("getValidateSource(" + id + ") blob ==  null" );
		}
		break;
	case Types.CLOB:
		Clob clob = rs.getClob(1);
		if(clob != null)
		{
			rv = clob.getSubString(1L, (int) clob.length()).getBytes();
		}
		break;
	case Types.CHAR:
	case Types.LONGVARCHAR:
	case Types.VARCHAR:
		rv = rs.getString(1).getBytes();
		break;
	case Types.BINARY:
	case Types.VARBINARY:
	case Types.LONGVARBINARY:
		rv = rs.getBytes(1);
		break;
	}
	return rv;
}
 
Example 17
Source Project: FoxTelem   Source File: CallableStatement.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
public Clob getClob(int parameterIndex) throws SQLException {
    synchronized (checkClosed().getConnectionMutex()) {
        ResultSetInternalMethods rs = getOutputParameters(parameterIndex);

        Clob retValue = rs.getClob(mapOutputParameterIndexToRsIndex(parameterIndex));

        this.outputParamWasNull = rs.wasNull();

        return retValue;
    }
}
 
Example 18
Source Project: FoxTelem   Source File: BlobRegressionTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
/**
 * Tests fix for BUG#20453712 - CLOB.SETSTRING() WITH VALID INPUT RETURNS EXCEPTION
 * server-side prepared statements and streaming BINARY data.
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug20453712() throws Exception {
    final String s1 = "NewClobData";
    this.rs = this.stmt.executeQuery("select 'a'");
    this.rs.next();
    final Clob c1 = this.rs.getClob(1);

    // check with wrong position
    assertThrows(SQLException.class, "Starting position can not be < 1", new Callable<Void>() {
        public Void call() throws Exception {
            c1.setString(0, s1, 7, 4);
            return null;
        }
    });

    // check with wrong substring index
    assertThrows(SQLException.class, "String index out of range: 12", new Callable<Void>() {
        public Void call() throws Exception {
            c1.setString(1, s1, 8, 4);
            return null;
        }
    });

    // full replace
    c1.setString(1, s1, 3, 4);
    assertEquals("Clob", c1.getSubString(1L, (int) c1.length()));

    // add
    c1.setString(5, s1, 7, 4);
    assertEquals("ClobData", c1.getSubString(1L, (int) c1.length()));

    // replace middle chars
    c1.setString(2, s1, 7, 4);
    assertEquals("CDataata", c1.getSubString(1L, (int) c1.length()));
}
 
Example 19
Source Project: gemfirexd-oss   Source File: TradeCustomerProfileDMLStmt.java    License: Apache License 2.0 5 votes vote down vote up
protected void getDataForUpdate(Connection conn, int[] cid, int[ ] cid2, int[] reps,
    Clob[] profile, int[] whichUpdate, int size){
  int numOfNonUniqUpdate = update.length/2;
  reps = getReps(conn, size);
  profile = getClob(size);
  cid = getCustProfCid(conn, size); 
  cid2 = getCustProfCid(conn, size);
  for (int i=0; i<size; i++) {
    whichUpdate[i] = getWhichOne(numOfNonUniqUpdate, update.length);
  }
}
 
Example 20
@Override
public void updateClob(String columnLabel, Clob x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
Example 21
@Override
public void updateClob(int columnIndex, Clob x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
Example 22
@Override
public Clob getClob(int parameterIndex) throws SQLException
{
  return _stmt.getClob(parameterIndex);
}
 
Example 23
Source Project: jdk8u60   Source File: StubJdbcRowSetImpl.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public void updateClob(int columnIndex, Clob x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
Example 24
Source Project: hottub   Source File: StubJoinRowSetImpl.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public void updateClob(int columnIndex, Clob x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
Example 25
Source Project: sofa-tracer   Source File: ExtendedPreparedStatement.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public void setClob(int parameterIndex, Clob x) throws SQLException {
    getDelegate().setClob(parameterIndex, x);
}
 
Example 26
/**
 * Tests fix for BUG#11614 - StringUtils.getBytes() doesn't work when using
 * multibyte character encodings and a length in _characters_ is specified.
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug11614() throws Exception {
    createTable("testBug11614",
            "(`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `text` TEXT NOT NULL," + "PRIMARY KEY(`id`)) CHARACTER SET utf8 COLLATE utf8_general_ci");

    Properties props = new Properties();
    props.setProperty(PropertyKey.characterEncoding.getKeyName(), "utf8");

    Connection utf8Conn = null;

    try {
        utf8Conn = getConnectionWithProps(props);

        utf8Conn.createStatement().executeUpdate("INSERT INTO testBug11614  (`id`,`text`) values (1,'')");
        this.rs = utf8Conn.createStatement().executeQuery("SELECT `text` FROM testBug11614 WHERE id=1");
        assertTrue(this.rs.next());

        Clob c = this.rs.getClob(1);
        c.truncate(0);
        int blockSize = 8192;
        int sizeToTest = blockSize + 100;

        StringBuilder blockBuf = new StringBuilder(sizeToTest);

        for (int i = 0; i < sizeToTest; i++) {
            blockBuf.append('\u00f6');
        }

        String valueToTest = blockBuf.toString();

        c.setString(1, valueToTest);
        this.pstmt = utf8Conn.prepareStatement("UPDATE testBug11614 SET `text` = ? WHERE id=1");
        this.pstmt.setClob(1, c);
        this.pstmt.executeUpdate();
        this.pstmt.close();

        String fromDatabase = getSingleIndexedValueWithQuery(utf8Conn, 1, "SELECT `text` FROM testBug11614").toString();
        assertEquals(valueToTest, fromDatabase);
    } finally {
        if (utf8Conn != null) {
            utf8Conn.close();
        }

    }
}
 
Example 27
@Override
public void setClob(int i, Clob x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
Example 28
@Override
public void updateClob(int columnIndex, Clob x) {
	throw new UnsupportedOperationException();
}
 
Example 29
Source Project: dremio-oss   Source File: NonClosableConnection.java    License: Apache License 2.0 4 votes vote down vote up
public Clob createClob() throws SQLException {
  return delegate.createClob();
}
 
Example 30
Source Project: waltz   Source File: AbstractClientCallbacksForJDBC.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public Clob createClob() throws SQLException {
    return connection.createClob();
}