我在一个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中有没有一种方法可以做同样的事情,而只是在最后一个反斜杠之后应用更改,而不必硬编码最后一个文件夹名?
谢谢
发布于 2016-02-26 02:51:02
如何计算"\“-您可以简单地将您的语句更改为
...LOCATE_IN_STRING(filepathfield,'\',1,5)... ?这意味着你的路径的“深度”是所描述的,第五个"\“是你正在寻找的那个。
https://stackoverflow.com/questions/35580537
复制相似问题