使用SQL-PL更改字段中的文件夹路径

时间:2016-02-23 14:45:34

标签: sql db2 sql-pl

我在DB2表中有一个包含文件路径的字段。该值看起来像这样:

N:\ Folder1中\ FOLDER2 \ Folder3 \ Folder4 \ ITP201602

我需要一个存储过程,它将使用时间戳更改最后一个文件夹,该文件夹将显示为ITPYYYYMM。 ITP是占位符值,不会改变。查看此路径的其他软件需要它。

这是我当前的查询,有效:

   CREATE PROCEDURE UPDATE_ITP_DOCUMENT_PATH()
   LANGUAGE SQL
    BEGIN
      UPDATE dbname.tablename
      SET filepathfield = LEFT(filepathfield, LOCATE('\Folder4\',filepathfield,1)+8) || 'ITP' || CHAR(YEAR(current timestamp)*100 + MONTH(current timestamp))
      WHERE idfield = 'idfieldvalue'
    END

这个问题是它需要将最后一个文件夹命名为“Folder4”。无论最后一个文件夹的名称是什么,我们都希望这样做。

在SQL PL中是否有办法做同样的事情,但只需在最后一个反斜杠之后应用更改,而不必硬编码最后一个文件夹名称?

由于

1 个答案:

答案 0 :(得分:0)

如何计算“\” - 你可以简单地将你的陈述改为

...LOCATE_IN_STRING(filepathfield,'\',1,5)... ?

这意味着您的路径的“深度”如上所述,第五个“\”是您正在寻找的那个。