1

我正在使用 perforce。stackoverflow 社区的一些乐于助人的成员帮助我找到了 p4reports 程序,该程序设置了一个 ODBC 数据源来访问我们的 perforce 数据。我创建了一个查询,它准确地返回了我需要的信息......几乎

这是查询:

SELECT a.file, a.time, a.action, a.revision, a.change, b.description
FROM files a, changes b
WHERE a.change = b.change AND ((b.p4options='longdesc'));

问题是 a.file 列返回带有整个路径的文件名,如下所示:

//depot/folder_1/folder_2/.../file_name.txt

我希望此列仅包含文件名,如下所示:

file_name.txt

有谁知道可以做到这一点的 SQL 查询?现在不管文件在文件夹结构中的嵌套有多深?

这是 perforce SQL 报告函数的链接。一些基本的字符串函数,但我很难将如何始终使用这些函数返回正确的文本放在一起。

http://www.perforce.com/perforce/doc.current/manuals/p4report/ab_functions.html#1045728

在 MySQL 中,我会做这样的事情:

SELECT right(a.file,locate("/",reverse(a.file))-1), a.time, a.action, a.revision, a.change, b.description
FROM files a, changes b
WHERE a.change = b.change AND ((b.p4options='longdesc'));

它会起作用,但reverse据我所知,perforce SQL 中没有任何功能。任何帮助将不胜感激!

谢谢!!

4

1 回答 1

3

您可能想看看 P4toDB,它将 Perforce 数据复制到常规数据库中。这样您就可以运行更高级的 SQL 查询,甚至可以使用报表引擎。

http://kb.perforce.com/article/1172/p4todb-readme

于 2012-04-17T20:42:52.637 回答