如何使用C#在Oracle的Blob字段中保存和检索图像? 使用数据库存储图像是一个不错的选择吗?
答案 0 :(得分:5)
由于您使用的是C#,因此您可能希望从Microsoft的Working with Oracle LOBs开始。这有许多使用OracleLob类读取和写入LOB到Oracle数据库的示例。
至于使用数据库来存储图像是否是一个好主意,就像所有事情一样,它取决于。在数据库中存储图像可确保图像受事务完整性的保护。它提供了一个可以驻留所有映像的单一位置,根据定义,所有映像都可以被所有中间层服务器访问。它可以更加轻松地确保备份所有数据并可以恢复。它确保没有人在不记得更新数据库的情况下意外移动图像。
另一方面,这意味着数据库的大小可能会大幅增加,因此难以备份。据推测,这只是交换文件系统备份大小的数据库备份大小,但这可能涉及将组织中的一个组头痛转移到另一个组。这意味着您无法使用文件系统脚本管理文件系统上的映像。这可能会使在中间层上缓存图像变得更加困难。
答案 1 :(得分:0)
我不知道您使用的编程语言,只是打开文件并使用十六进制表示法编写字节。
这是Java编程语言的一个例子: http://www.herongyang.com/JDBC/Oracle-BLOB-SQL-INSERT.html
编辑:您可以保存像素,或压缩图像(在网络摄像头的情况下)。我建议您在将图像保存到数据库之前使用JPEG或PNG之类的东西。