--切换回scott用户后创建表
 CREATE TABLE ebook
 (id int primary key,title VARCHAR2(40),  book_file BFILE)
/--使用BEFILENAME函数向表中插入数据,
--BFILENAME函数:BFILENAME(逻辑目录名,文件名),此处插入的是文件定位指针映射,并不是文件本身
INSERT INTO ebook VALUES(1,'struts精讲',BFILENAME('TEST_DIR','struts.txt'))
/--向数据表中追加一个BLOP(大二进制)类型的字段
ALTER TABLE ebook
ADD picture BLOB
/--向ebooks表中插入二进制图像
 DECLARE
   l_bfile  BFILE;
   l_blob BLOB;
 BEGIN
   UPDATE ebook
   --从这儿就开始看不懂了。整个过程大概意思是向一个表当中插入一个BLOB类型的数据
   --但下面的return是什么意思?这又不是个函数。
   set picture =EMPTY_BLOB() where title='struts精讲'
   RETURN picture INTO l_blob;
   l_bfile := BFILENAME('TEST_DIR', '\image.bmp');
   --这个open又是啥意思啊?似乎是用只读的方式打开l_bfile,不知我理解的对不对?
   DBMS_LOB.OPEN(l_bfile, DBMS_LOB.FILE_READONLY);
   --现在似乎把数据存入到l_blob变量当中了,但他又是如何将数据存入ebook表中的呢?跟上面的那个return有关系吗?
   DBMS_LOB.LOADFROMFILE(l_blob, l_bfile, DBMS_LOB.GETLENGTH(l_bfile));
   DBMS_LOB.CLOSE(l_bfile);
   COMMIT;
 END;
/