Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用Bash将大型图像存储为SQLite数据库中的BLOB_Database_Image_Bash_Sqlite_Blob - Fatal编程技术网

Database 使用Bash将大型图像存储为SQLite数据库中的BLOB

Database 使用Bash将大型图像存储为SQLite数据库中的BLOB,database,image,bash,sqlite,blob,Database,Image,Bash,Sqlite,Blob,我正在创建一个小脚本,在SQLite数据库中导入一个大的图像目录, 我很清楚SQLite不是存储大水滴的理想场所,但我必须这样做 实际上,我正在尝试使用hexdump: sqlite3 name.db "INSERT INTO table (image) values(x'"$(hexdump -v -e '1/1 "%02x"' ./filename.jpg)"');" 但偶尔,在相当大的图像上,它会返回一个错误: sqlite3: Argument list too long 如何解决此

我正在创建一个小脚本,在SQLite数据库中导入一个大的图像目录, 我很清楚SQLite不是存储大水滴的理想场所,但我必须这样做

实际上,我正在尝试使用hexdump:

sqlite3 name.db "INSERT INTO table (image) values(x'"$(hexdump -v -e '1/1 "%02x"' ./filename.jpg)"');"
但偶尔,在相当大的图像上,它会返回一个错误:

sqlite3: Argument list too long

如何解决此问题?

当SQL命令作为参数提供给
sqlite3
时,必须在实际使用该参数之前生成
hextump
的整个输出

管道没有尺寸限制:

(echo -n "INSERT INTO table (image) values(x'"
 hexdump -v -e '1/1 "%02x"' ./filename.jpg
 echo "');") | sqlite3 name.db
或者,您可以将命令写入文件,并告诉
sqlite3
。读取它


版本3.8.6或更高版本中的SQLite shell具有直接读取文件的功能。

也许这会有所帮助:它说有一个限制,但我正在使用的SQLite 3中删除了它。太棒了!我已经在考虑使用管道了,我现在要试试你的解决方案。好了,我必须对它进行一点编辑,这是对我有效的版本:
(echo-n“INSERT-INTO-table(image)values(x'”$(hextdump-v-e'1/1“%02x”./filename.jpg)”;)| sqlite3 name.db
这对我来说很有效,因为我需要将一个很长的css值插入到数据库中。