google地图是如何用oracle进行图片的存储的

google地图是基于oracle查询的,那么,google是如何把地图存储到oracle里面的呢?

这里我们借助dbms_lob包来简单了解一下流程。

1)创建一个t表:

00:32:04 hr@ORCL (^ω^) create table t (a varchar2(20),b blob);

表已创建。


2)写一个存储过程:

CREATE OR REPLACE PROCEDURE think   (p_1 VARCHAR2,     p_2 VARCHAR2    , p_3  varchar2  ) 
AS
  v_f BFILE;
  v_b blob;
BEGIN
  INSERT INTO t  values(  p_1,     EMPTY_BLOB ()    )   RETURN  b    into v_b;
  
  
    v_f := BFILENAME (p_2,p_3);
   DBMS_LOB.FILEOPEN  (v_f, DBMS_LOB.FILE_READONLY);
   DBMS_LOB.LOADFROMFILE (v_b, v_f,   DBMS_LOB.GETLENGTH (v_f));
   DBMS_LOB.FILECLOSE (v_f);
   commit;
   end;


此处记得检查一下我们的过程是否有误:select * from user_errors

3)sys用户创建directory对象并授权:

00:44:12 sys@ORCL (^ω^) create directory dir as 'C:\Users\Administrator\';

目录已创建。

00:45:21 sys@ORCL (^ω^) grant all on directory dir to hr;


4)执行存储过程

    begin
      think( 'This is my pic 1', 'DIR', 'psu.jpg'   );
    end;


5)查询(基于pl/sql查询

 select * from t


查询效果如下:

google地图是如何用oracle进行图片的存储的

当然了,google不可能用pl/sql来展现它的图片。可能是java开发的app,也可能是其他。

你可能感兴趣的:(google地图)