问题描述
我的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 。根据{{3}},
加号(+)可用于指示字符串常量的延续。
但是,这甚至都没有通过预编译(“令牌+无效”)。我怀疑这是由于字符串在语句中的位置所致。
我也尝试过:
我考虑过:
- 准备整个语句,但这出于多种原因并不理想
- 在层次结构中的更高级别截断路径,但这不会返回所需的记录“粒度”
有没有办法在源代码的多行中跨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;
应该工作,是您尝试的吗?