使用 Invantive SQL 从路径中检索文件名
Retrieve file name from path with Invantive SQL
为了将 AccountView XML 输入文件转换为 XML Auditfile Afrekensystemen(收银机),我需要生成一个没有路径的输出文件名。查询是:
select f.file_path file_path_src
, replace(f.file_path, '.xml', '.xaa') file_path_tgt
, xmltransform(cnt.file_contents, xsl.file_contents) xaa_contents
from files('${rootpath}\input', '*.xml')@os f
join read_file_text(f.file_path)@os cnt
on 1=1
join read_file_text('${scriptpath}\convert-account-view-to-xaa.xsl')@os xsl
on 1=1
local export documents in xaa_contents to "${rootpath}\output" filename column file_path_tgt
但是,local export documents
语句要求文件名仅由基本名称和扩展名组成。当您在其中包含目录结构时,它会生成有趣的文件路径,例如 <root path>\c_\folder\...
.
如何从 f.file_path
中提取没有目录路径和扩展名的文件名?
使用以下查询,我现在得到一个没有目录的文件名:
select f.file_path file_path_src
, regexp_replace(f.file_path, '^(.*[\/]|)(.*).xml$', '.xaa') file_path_tgt
, xmltransform(cnt.file_contents, xsl.file_contents) xaa_contents
from files('${rootpath}\input', '*.xml')@os f
join read_file_text(f.file_path)@os cnt
on 1=1
join read_file_text('${scriptpath}\convert-account-view-to-xaa.xsl')@os xsl
on 1=1
部分:
regexp_replace(f.file_path, '^(.*[\/]|)(.*).xml$', '.xaa')
获取文件路径,例如c:\folder\...\accountview.xml
,将其分成三部分:
- 从开始到最后找到的正斜杠或反斜杠放入 $1。
- 在斜线之后直到出现尾随
.xml
被放入 $2.
- 尾部
.xml
是另一部分,但在替换字符串中不可引用。
.xaa
给出文件路径作为输出:accountview.xaa
.
为了将 AccountView XML 输入文件转换为 XML Auditfile Afrekensystemen(收银机),我需要生成一个没有路径的输出文件名。查询是:
select f.file_path file_path_src
, replace(f.file_path, '.xml', '.xaa') file_path_tgt
, xmltransform(cnt.file_contents, xsl.file_contents) xaa_contents
from files('${rootpath}\input', '*.xml')@os f
join read_file_text(f.file_path)@os cnt
on 1=1
join read_file_text('${scriptpath}\convert-account-view-to-xaa.xsl')@os xsl
on 1=1
local export documents in xaa_contents to "${rootpath}\output" filename column file_path_tgt
但是,local export documents
语句要求文件名仅由基本名称和扩展名组成。当您在其中包含目录结构时,它会生成有趣的文件路径,例如 <root path>\c_\folder\...
.
如何从 f.file_path
中提取没有目录路径和扩展名的文件名?
使用以下查询,我现在得到一个没有目录的文件名:
select f.file_path file_path_src
, regexp_replace(f.file_path, '^(.*[\/]|)(.*).xml$', '.xaa') file_path_tgt
, xmltransform(cnt.file_contents, xsl.file_contents) xaa_contents
from files('${rootpath}\input', '*.xml')@os f
join read_file_text(f.file_path)@os cnt
on 1=1
join read_file_text('${scriptpath}\convert-account-view-to-xaa.xsl')@os xsl
on 1=1
部分:
regexp_replace(f.file_path, '^(.*[\/]|)(.*).xml$', '.xaa')
获取文件路径,例如c:\folder\...\accountview.xml
,将其分成三部分:
- 从开始到最后找到的正斜杠或反斜杠放入 $1。
- 在斜线之后直到出现尾随
.xml
被放入 $2. - 尾部
.xml
是另一部分,但在替换字符串中不可引用。
.xaa
给出文件路径作为输出:accountview.xaa
.