如何跨多行在 RPGLE 中的 "XMLTABLE" 嵌入式 SQL 语句中断开长字符串?
How can I break a long string in an "XMLTABLE" embedded SQL statement in RPGLE across multiple lines?
我的 XML 路径超过 100 个字符(因此在保存源时会被截断)。我的陈述是这样的:
Exec SQL
Select Whatever
Into :Stuff
From Table as X,
XmlTable(
XmlNamespaces('http://namespace.url/' as "namespacevalue"),
'$X/really/long/path' Passing X.C1 as "X"
Columns
Field1 Char(3) Path 'example1',
Field2 Char(8) Path 'example2',
Field3 Char(32) Path '../example3'
) As R;
我必须打破 $X/really/long/path 跨多行。每 IBM's documentation、
The plus sign (+) can be used to indicate a continuation of a string constant.
然而,这甚至没有通过预编译(“令牌 + 无效”)。我怀疑这是由于字符串在语句中的位置所致。
我也试过:
- 将路径放在主机变量中;这是不允许的
- 使用SQL CONCAT 或||;不允许
- 将路径放在 SQL 全局变量而不是主机变量中;不允许
我考虑过:
- 正在准备整个声明,但由于多种原因这并不理想
- 在层次结构的较高级别截断路径,但这不会return记录的所需“粒度”
有没有什么方法可以将 XmlTable 函数中的这个特定文字跨越我的源代码中的多行?感谢所有想法!
类似
Exec SQL
Select Whatever
Into :Stuff
From Table as X,
XmlTable(
XmlNamespaces('http://namespace.url/' as "namespacevalue"),
'$X/really/+
long/path' Passing X.C1 as "X"
Columns
Field1 Char(3) Path 'example1',
Field2 Char(8) Path 'example2',
Field3 Char(32) Path '../example3'
) As R;
应该可以,你试过了吗?
我的 XML 路径超过 100 个字符(因此在保存源时会被截断)。我的陈述是这样的:
Exec SQL
Select Whatever
Into :Stuff
From Table as X,
XmlTable(
XmlNamespaces('http://namespace.url/' as "namespacevalue"),
'$X/really/long/path' Passing X.C1 as "X"
Columns
Field1 Char(3) Path 'example1',
Field2 Char(8) Path 'example2',
Field3 Char(32) Path '../example3'
) As R;
我必须打破 $X/really/long/path 跨多行。每 IBM's documentation、
The plus sign (+) can be used to indicate a continuation of a string constant.
然而,这甚至没有通过预编译(“令牌 + 无效”)。我怀疑这是由于字符串在语句中的位置所致。
我也试过:
- 将路径放在主机变量中;这是不允许的
- 使用SQL CONCAT 或||;不允许
- 将路径放在 SQL 全局变量而不是主机变量中;不允许
我考虑过:
- 正在准备整个声明,但由于多种原因这并不理想
- 在层次结构的较高级别截断路径,但这不会return记录的所需“粒度”
有没有什么方法可以将 XmlTable 函数中的这个特定文字跨越我的源代码中的多行?感谢所有想法!
类似
Exec SQL
Select Whatever
Into :Stuff
From Table as X,
XmlTable(
XmlNamespaces('http://namespace.url/' as "namespacevalue"),
'$X/really/+
long/path' Passing X.C1 as "X"
Columns
Field1 Char(3) Path 'example1',
Field2 Char(8) Path 'example2',
Field3 Char(32) Path '../example3'
) As R;
应该可以,你试过了吗?