我有一个超过100个字符的XML路径(因此在保存源代码时会被截断)。我的语句如下所示:
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,
加号(+)可用来表示字串常数的接续。
然而,这甚至没有通过预编译(“Token + was not valid”)。我怀疑这是由于字符串在语句中的位置。
我也试过:
- 将路径放在主机变量中;这是不允许的
- 使用SQL CONCAT或||;不允许
- 将路径放入SQL全局变量而不是主机变量中;不允许
我考虑过:
- 准备整个语句,但这并不理想,原因有很多
- 在层次结构中的较高级别截断路径,但这不会返回所需的记录“粒度
有没有什么方法可以将XmlTable函数中的这个特定文字跨越源代码中的多行?感谢您的所有想法!
2条答案
按热度按时间des4xlb01#
比如
应该有用,你试过了吗?
hmae6n7t2#
+对我不起作用,所以我不得不用//代替/来缩短路径,这可能是次优的。