O mecanismo normal de bloqueio do Derby (bloqueios compartilhados) impede que outras transa????es atualizem ou excluam um item do banco de dados para o qual o objeto java.sql.Blob ou java.sql.Clob seja um ponteiro. Entretanto, em alguns casos, o mecanismo de bloqueio instant??neo do Derby pode admitir um per??odo de tempo onde a coluna subjacente a java.sql.Blob ou java.sql.Clob fique desprotegida. Uma chamada subseq??ente ao m??todo getBlob/getClob, ou java.sql.Blob/java.sql.Clob, pode causar um comportamento indefinido.
Al??m disso, n??o h?? nada que impe??a a transa????o que mant??m java.sql.Blob/java.sql.Clob (ao contr??rio das outras transa????es) atualizar a linha subjacente (O mesmo problema existe com os m??todos getXXXStream). Os aplicativos devem ser programados para impedir atualiza????es no objeto subjacente, enquanto houver um java.sql.Blob/java.sql.Clob aberto para o objeto; se isto n??o for feito, pode resultar em um comportamento indefinido.
ResultSet rs = s.executeQuery("SELECT text FROM CLOBS WHERE i = 1"); while (rs.next()) { aclob=rs.getClob(1); ip = rs.getAsciiStream(1); }
Os fluxos que tratam colunas longas n??o s??o seguros quanto a thread. Isto significa que se for decidido abrir v??rias threads, e acessar o fluxo a partir de cada uma das threads, o comportamento resultante ser?? indefinido.
OS Clobs n??o s??o afetados pelo idioma.