如何使用INSERT语法将图片插入Oracle表中的BLOB列?

时间:2017-04-16 00:04:16

标签: sql oracle oracle11g sql-insert

我有一个简单的表格,我想在我的机器上插入一个图像。我想将图片插入到我的表格的BLOB列中。只是想知道我该怎么做。我知道有一些与BLOB相关的现有解决方案,但没有一个直接使用INSERT SYNTAX帮助我。

CREATE TABLE test(id int,photo BLOB);

INSERT INTO test VALUES(1,'Path of the picture\filename');

1 个答案:

答案 0 :(得分:0)

首先,创建一个目录来存储图像并授予用户读,写权限。然后您可以使用BFILENAME函数插入图像。

SQL> conn / as sysdba

SQL> create directory image_dir as '/home/oracle/Desktop/';

Directory created.

SQL> grant read, write on directory image_dir to jay;

Grant succeeded.

SQL> conn jay  
Enter password: 
Connected.
SQL> CREATE TABLE test(id number, image blob);

Table created.

现在,要存储给定图像,可以使用以下insert语句。

[oracle@myserver Desktop]$ ls -l | grep abc
-rw-r--r-- 1 oracle oinstall   269748 Apr 16 01:23 abc.png


SQL> INSERT INTO test VALUES(1,bfilename('IMAGE_DIR','abc.png'));

1 row created.

参考: BFILENAME