Здравствуйте, Аноним, Вы писали:
А>Ктонибудь пробовал запихивать блобы(файлы) в oracle из java и выуживать их потом оттудава? А>Был бы очень признателен, если бы кинули пример кода.
Вычитывать как обычно, а записывать нужно в 2 этапа:
1. вставить empty_blob()
2. вычитать этот blob select'ом "for update" и потом в него записывать.
А>>Ктонибудь пробовал запихивать блобы(файлы) в oracle из java и выуживать их потом оттудава? А>>Был бы очень признателен, если бы кинули пример кода.
_>выдрал из своего класса... _>думаю разбрешься, там xml-ник запихивается и читается из ClOB'a
Спасибо большое, с CLOB я уже разобрался — вроде работает, но вот у меня проблемка именно с BLOBом.
Re[2]: Oracle BLOB & Java
От:
Аноним
Дата:
23.06.04 10:17
Оценка:
Здравствуйте, dshe, Вы писали:
D>Здравствуйте, Аноним, Вы писали:
А>>Ктонибудь пробовал запихивать блобы(файлы) в oracle из java и выуживать их потом оттудава? А>>Был бы очень признателен, если бы кинули пример кода.
D>Вычитывать как обычно, а записывать нужно в 2 этапа: D>1. вставить empty_blob() D>2. вычитать этот blob select'ом "for update" и потом в него записывать.
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();
Спасибо, что обратил на меня внимание.
То что в 2 этапа — это я допер. Мне бы нада файл с винта (например, картинку) запихать в этот самый BLOB. Для этого мне нада этот файл считать, привести его в массив байтов, подсунуть переменной типа BLOB этот массив и с помощью update запихать эту переменную в поле БД типа BLOB? Или я чота совсем глюкаю?
Re[2]: Oracle BLOB & Java
От:
Аноним
Дата:
23.06.04 11:36
Оценка:
Здравствуйте, dshe, Вы писали:
D>Здравствуйте, Аноним, Вы писали:
А>>Ктонибудь пробовал запихивать блобы(файлы) в oracle из java и выуживать их потом оттудава? А>>Был бы очень признателен, если бы кинули пример кода.
Все, спасибо, разобрался — заработало Твои ссылки очень помогли.
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?