我在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中是否有办法做同样的事情,但只需在最后一个反斜杠之后应用更改,而不必硬编码最后一个文件夹名称?
由于
答案 0 :(得分:0)
如何计算“\” - 你可以简单地将你的陈述改为
...LOCATE_IN_STRING(filepathfield,'\',1,5)... ?
这意味着您的路径的“深度”如上所述,第五个“\”是您正在寻找的那个。