一个数据表保存了上传文件的信息 由于文件保存在本地
所以在表中有一个字段是保存文件路径的。因为开始将文件都保存到了c盘 现在想都放到d盘 如:将字段c:\fileupload\files\download//1371207824.jpg
都转变成d:\fileupload\files\download//1371207824.jpg
请问改怎么改呢 字段很多 不可能手工改 能不能用sql来实现呢??????
在线等!!1

解决方案 »

  1.   

    update 表名 set 字段 = 'd:\fileupload\files\download//1371207824.jpg' where 字段 = 'c:\fileupload\files\download//1371207824.jpg';
      

  2.   

    update table t set addr=d||substr(addr,2,length(addr))若是有中文的话  可能LENGTH要换成LENGTHB   反正就是这几个函数 你自己测试一下  我也没有测试过
      

  3.   

    若是不全在C盘的话  在WHERE条件中加
    WHERE UPPER(SUBSTR(ADDR,1,1))=‘C’
      

  4.   

    刚才写错了
    update 表名 set 字段 = 'd:\' || substr(字段,4,50) where 字段 like 'c:\%';
      

  5.   

    Update t set f=Replace(value,'c:\','d:\') where f like 'c:\%'
    顺便说一句,SQL语句肯定能够实现,但是我觉得你的表结构设计的有问题,像文件路径这样的经常变动的东西,应该单独用一个表(一般叫做参数表)保存,这样,你那个字段保存相对路径就可以.参数表中的东西不管怎样变,都不会影响到数据表,因为数据表相对很大,而参数表很小,这样变动的代价就很小.
      

  6.   

    顺便说一句,SQL语句肯定能够实现,但是我觉得你的表结构设计的有问题,像文件路径这样的经常变动的东西,应该单独用一个表(一般叫做参数表)保存,这样,你那个字段保存相对路径就可以.参数表中的东西不管怎样变,都不会影响到数据表,因为数据表相对很大,而参数表很小,这样变动的代价就很小.有道理