создание случайного блоба в jdbc и запись его в oracle - PullRequest
0 голосов
/ 02 декабря 2010

Я хочу создать много блобов в java [в памяти] и записать их в таблицу Oracle.

Я хочу, чтобы большой двоичный объект [биты внутри него] был случайным или случайным, чтобы оракул не смог выполнить предварительную оптимизацию при сохранении большого двоичного объекта в таблице.

Что-то вроде

for(1..1000000)
{
blob = createRandomBlob(sizeOfBlob);
sqlText ="INSERT INTO test_blob (id, blob) VALUES(i, blob)";
stmt.executeUpdate(sqlText);
}

Может кто-нибудь указать, какие API-интерфейсы JAVA я могу использовать для создания такого большого двоичного объекта [в памяти, а не на диске] и записать его в БД?

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

Я могу ответить только за «сохранить его в части БД», но не уверен насчет «создать произвольный массив BLOB-объектов»)

byte[] someBlob = createBlobBytes();
PreparedStatement stmt = connection.prepareStatement("INSERT INTO test_blob (id, blob) VALUES(?, ?)";
ByteArrayInputStream in = new ByteArrayInputStream(someBlob);
stmt.setInt(1, id);
stmt.setBinaryStream(2, in, someBlob.length);
stmt.executeUpdate();

Это должно нормально работать с драйверами 10.x

0 голосов
/ 02 декабря 2010

Я думаю, что это должно сработать

  byte[] data = new byte[10000];
    fRandom.nextBytes(data);
    try
    {
      SerialBlob fSerialBlob = new SerialBlob(data);
    } catch (SerialException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (SQLException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

Не знаю, есть ли более быстрый / эффективный способ сделать это.

...