我有大约2k的原始二进制数据需要存储在表中,但不知道是否选择Varbinary或Blob类型.我已经阅读了MySQL文档中的描述,但没有找到任何合同和比较描述.我还读到varbinary最多只支持255个字符,但我成功创建了一个varbinary(2048)字段,所以我有点困惑.
二进制数据不需要编入索引,也不需要查询.使用PHP中的另一种类型是否有优势?
谢谢!
当我尝试在SQL*Plus中显示LOB(大对象)列的内容时,它会被截断.我如何展示整件事?
我对blobMySQL中的数据类型有疑问.
我读到数据类型可用于存储文件.我还读到了另一种方法是将文件存储在磁盘上,并在数据库中包含指向其位置的指针(通过varchar列).
但我有点困惑,因为我已经读过blob字段没有存储在行中并需要单独的查找来检索其内容.那么与文件系统上的文件存储指针有什么不同?
我试图通过使用从BLOB数据类型获取字符串
Blob blob = rs.getBlob(cloumnName[i]);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是当我要转换String到Blob并试图插入到数据库,然后什么都不插入到数据库中.我使用下面的代码将String转换为Blob:
String value = (s);
byte[] buff = value.getBytes();
Blob blob = new SerialBlob(buff);
Run Code Online (Sandbox Code Playgroud)
谁能帮我要的转换Blob,以String和String对BlobJava中?
我正在尝试捕获audiorecorder(https://github.com/cwilso/AudioRecorder)并通过Ajax发送blob一个php文件,它将接收blob内容并创建文件(在这种情况下为wave文件).
Ajax调用:
audioRecorder.exportWAV(function(blob) {
var url = (window.URL || window.webkitURL).createObjectURL(blob);
console.log(url);
var filename = <?php echo $filename;?>;
$.ajaxFileUpload({
url : "lib/vocal_render.php",
secureuri :false,
dataType : blob.type,
data: blob,
success: function(data, status) {
if(data.status != 'error')
alert("boa!");
}
});
});
Run Code Online (Sandbox Code Playgroud)
和我的php文件(vocal_render.php):
<?php
if(!empty($_POST)){
$data = implode($_POST); //transforms the char array with the blob url to a string
$fname = "11" . ".wav";
$file = fopen("../ext/wav/testes/" .$fname, 'w');
fwrite($file, $data);
fclose($file);
}?>
Run Code Online (Sandbox Code Playgroud)
PS:我是blob和ajax的新手.提前致谢.
大多数表(如果不是全部)都有一个"blob"字段.存储用户操作日志的表之一现已增长到8 GB(约500万条记录).
我们的DBA已经看到这个模式现在以指数方式占用空间.我们调查了一下,发现其中一个表(SYS_LOB)需要大约116GB的140GB数据库.
我们的DBA告诉我们这个表与保存用户操作日志的表(8GB)有关
有谁知道这个SYS_LOB表有什么作用?实际的blob是否保存在我们创建的表中,或者oracle实际上将这些blob存储在另一个表中(如果是,那么SYS_LOB将是该表)?
我在Android应用程序的sqlite数据库中存储了大量二进制数据(protobufs),却没有意识到Android Cursor只能容纳最多1MB的数据.我现在知道我应该将这些二进制blob存储在文件中,并且只引用sqlite数据库条目中的文件.
我需要升级数据库(应用程序已经使用了一段时间)才能将这些二进制块移动到文件中.问题是某些用户的数据可能已经超过了1MB的限制,我无法从数据库中检索它(访问Cursor包含大blob的单行的结果IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it).
如何检索Cursor已存储在sqlite数据库中的大于1MB 限制的二进制blob ?
现在大多数浏览器都支持IndexedDB将数据/文件直接存储为File,Blob或ArrayBuffer.
此代码将IDB密钥"File1"保存为文件
<input type="file" id="userfile" />
var a = document.getElementById("userfile");
var b = a.files[0];
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用以下代码直接将此文件保存到IDB
//LocalForage is a library for indexedDB developed by Mozilla
//Note: localforage._config.driver=asyncStorage (IDB method)
function run(){
//"File1" = IDB data table key and b=value
localforage.setItem("File1", b, function(err, value) {
console.log(err)
});
}
a.onchange = function(){
run()
}
Run Code Online (Sandbox Code Playgroud)
此代码将IDB密钥"BlobFile"保存为Blob
mb = new Blob([b],{type:b.type});
function runB(){
localforage.setItem("BlobFile", mb, function(err, value){
console.log(err)
});
}
a.onchange = function(){
runB()
}
Run Code Online (Sandbox Code Playgroud)
我想知道将文件存储到IDB的最佳做法是什么.(文件/斑点/ ArrayBuffer) …
我已经在SQL 2008服务器上成功设置了FILESTREAM; 但是我注意到即使我删除了包含FILESTREAM数据的行,物理数据文件似乎也没有被删除.
通过物理文件,我指的是SQLServer托管目录中的文件,其唯一的文件名不是添加到dbase的原始文件.
有谁知道SQLServer最终是否会删除该文件?如果从dbase中删除了大量大文件,我希望能够快速回收这些空间.
我想用HTML5录制麦克风的音频,然后将其发送到服务器进行保存.但是,目前保存的文件只包含[object Object]
以下是我的代码的一些片段.
console.log(blob);
$http.post('/api/save_recording', blob)
.success(function(new_recording) {
console.log("success");
})
Run Code Online (Sandbox Code Playgroud)
日志打印:
Blob {type: "audio/wav", size: 237612, slice: function}
success
Run Code Online (Sandbox Code Playgroud)
exports.saveRecording = function(req, res) {
console.log(req.body);
fs.writeFile("temp/test.wav", req.body, function(err) {
if(err) {
console.log("err", err);
} else {
return res.json({'status': 'success'});
}
})
}
Run Code Online (Sandbox Code Playgroud)
日志打印: { type: 'audio/wav', size: 786476 }
你能告诉我为什么这不起作用,以及如何解决它?
blob ×10
mysql ×2
oracle ×2
ajax ×1
android ×1
angularjs ×1
binary ×1
clob ×1
cursor ×1
file-upload ×1
filereader ×1
filestream ×1
html5 ×1
indexeddb ×1
java ×1
javascript ×1
jdbc ×1
jquery ×1
lob ×1
node.js ×1
sql ×1
sqldatatypes ×1
sqlite ×1
sqlplus ×1
wave ×1