我有一个包含巨大 LOB 的数据库,我想提取它。 7-Zip 可以提取类似的,但不能提取这个。元文件是这样的:
¬í w sr java.util.ArrayListxÒ™Ça I sizexp w
sr org.axiondb.Column€Ó<žNPš° L _configt Ljava/util/Map;xpsr java.util.HashMapÚÁÃ`Ñ F
loadFactorI thresholdxp?@ w t defaultValuept typesr org.axiondb.types.IntegerTypeãš–¶„¯‡ xr $org.axiondb.types.BaseNumberDataType+·îÐ÷ô}Ñ xr org.axiondb.types.BaseDataType¨—oÝPÎ xpt sqlTypet integert namet CACHE_KEYxsq ~ sq ~ ?@ w q ~ pq ~ sr org.axiondb.types.LOBTypeô±æ)[Úá% L _locatorFactoryt %Lorg/axiondb/types/LobLocatorFactory;L _raFilet Ljava/io/RandomAccessFile;xq ~ sr 'org.axiondb.types.FileLobLocatorFactoryžÛ¡ý×3 I _counterxp·Ç Êpq ~
t blobq ~ t CACHE_VALUExxsq ~ ?@ w x
我在 Java 方面没有太多经验,但我可以用 C# 进行工作吗?
使用什么样的数据库?这项技术在 C# 中有等效技术吗?
类似的东西
public byte[] getBlob(Long id) {
try (Connection con = getConnection()) {
PreparedStatement ps = con.prepareStatement("select blob_column from my_table where id = ?");
ps.setLong(1, id);
ResultSet rs = ps.executeQuery();
rs.next();
try (InputStream in = rs.getBinaryStream("blob_column")) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte buffer = new byte[1024];
int count;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
return out.toByteArray();
}
}
}