Re[2]: Oracle BLOB & Java
От: star0ff  
Дата: 17.09.04 07:57
Оценка:
Здравствуйте, dshe, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>Ктонибудь пробовал запихивать блобы(файлы) в oracle из java и выуживать их потом оттудава?

А>>Был бы очень признателен, если бы кинули пример кода.

D>Вычитывать как обычно, а записывать нужно в 2 этапа:

D>1. вставить empty_blob()
D>2. вычитать этот blob select'ом "for update" и потом в него записывать.

D>вот несколько примеров того, как это можно сделать

D>

D>http://otn.oracle.com/sample_code/tech/java/sqlj_jdbc/files/advanced/LOBSample/Readme.html
D>

D>http://wamoz.com/JDBC_and_Oracle_LOB.asp
D>

D>http://forum.java.sun.com/thread.jsp?thread=525923&forum=31&message=2522468
D>
D>public static void setBlob(Connection connection, InputStream inputStream, String tableName, 
D>String columnName, String recordID) throws SQLException, IOException {
D>   Statement statement = connection.createStatement();
D>   ResultSet resultSet = statement.executeQuery("SELECT ID, "+columnName+" FROM "+tableName+" WHERE ID='"+recordID+"' FOR UPDATE");
D>   resultSet.next();
D>   oracle.sql.BLOB blobDest = (oracle.sql.BLOB) ((OracleResultSet) resultSet).getBlob(2); 
D>   byte[] buffer = new byte[ blobDest.getBufferSize() ];
D>   OutputStream outputStream = blobDest.getBinaryOutputStream();
D>   int length = -1;
D>   while ((length = inputStream.read(buffer)) != -1) {
D>      outputStream.write(buffer,0,length);
D>      outputStream.flush();
D>   }
D>   statement.close();
D>   outputStream.close();
D>   inputStream.close();
D>   resultSet.close(); 
D>}
D>

D>

D>http://www.idevelopment.info/data/Oracle/DBA_tips/Java/JAVA_20.shtml
D>

А для случая когда у нас есть plsql процедура и нужно воспользоваться ей?
Например есть процедура putBlob(blob_id IN number, blob_data IN number), как с помощью java метода можно передать в нее blob?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.