这听起来像是一个愚蠢的问题,现在。不幸的是,一些用途仍然必须科普技术,从上个千年。
如何在只有70个字符宽的编辑器中使用declare namespace
和urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100
这样的名称空间?
基本上我想跑:
SELECT
xmlcast(
XMLQUERY('declare namespace ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100";
$e//ram:GrandTotalAmount'
PASSING XMLPARSE(DOCUMENT xmlcol) AS "e"
) AS integer)
FROM
mytable
但是名称空间声明对于只有70个字符宽的编辑器来说太长了。
到目前为止,我还没有找到使用' || <newline> '
将声明分成多行的方法,但任何concat都会导致SQL Error [42601]: ILLEGAL USE OF KEYWORD PASSING
2条答案
按热度按时间p5cysglq1#
这取决于你用来执行这些语句的程序。对于标准的DSNTEP 2/SPUFI,你只需要编写到第72列,然后继续编写到第1列,如下所示(注意,列编号行不是文件的一部分,它只是使用
COLS
显示的行):我认为连接查询表达式应该可以工作,但是IBM似乎不允许在这里使用表达式。(例如路径中的
/
之后),但在其他路径中则不会。如果您无法#t找到这样的位置(通过实验),你将不得不求助于上面的“第72列-〉第1列”战术。1l5u6lss2#
非常感谢@data_henrik的评论,事情真的就这么简单:
这太好了,因为XML文件中有六个名称空间,我实际上必须
declare
才能获得我需要的所有其他元素/属性。