那就用varchar2型的字段去保存文件名不就好了。

解决方案 »

  1.   

    用bfile吧,
    如果你用的是9i以上的版本的话,可以考虑用外部文件,具体怎么用手边没有现成的例子给你,你要自己去看书了
      

  2.   

    同意楼上的 用bfile。如果直接用文件名和文件路径,你怎么定位?如果是客户端的话,你怎么把文件给他们,难道你每次要查到路径,而后从服务端把文件自己写传输方法传输文件?
      

  3.   

    Oracle 有一个包:DBMS_LOB支持大型对象功能的编程,它的函数/过程如下(不全):DBMS_JOB.APPEND(目标定位器,源定位器)
    DBMS_JOB.READ(定位器,amount,offset, buffer) 
         --amount:从文件中读取到缓冲中的字节数,
         --offset 偏移值
    DBMS_JOB.WRITE(定位器,amount,offset, buffer)
    DBMS_JOB.OPEN(定位器)
    DBMS_JOB.CLOSE(定位器)
    DBMS_JOB.ISOPEN(定位器)举个例子:
    用外部大型对象1.建立一个目录对象:
    CREATE DIRECTORY IMAGES_DIR AS 'C:\TEMP'2.
    DECLARE
     V_FILE BFILE;
    BEGIN
       V_FILE := BFILENAME('IMAGES_DIR', 'image1.gif');
       IF DBMS_LOB.FILEEXISTS(V_FILE) = 1 THEN   --等于1为文件存在。
        INSERT INTO TABNAME (bfile列)VALUES(V_FILE);
            COMMIT;
       END IF;
    END;以上就是BFILE的用法,它只是把一个文件定位器存在了数据库中,而文件的操作系统的磁盘上。