使用SQL查询,我需要获取如下数据。
<AcceptanceDateTime>
<udt:DateTimeString formatCode="304">20161207010101Z</udt:DateTimeString>
</AcceptanceDateTime>
我尝试使用下面的SQL查询生成它,但是会引发错误
begin tran
SELECT
format( GETDATE(),'yyyyMMddHHmmss') +'Z' as 'udt:DateTimeString'
INTO #tblCDSDeclarationAcceptanceDateTime
SELECT * FROM #tblCDSDeclarationAcceptanceDateTime
SELECT
'304' AS '@formatCode',
Acc.[udt:DateTimeString]
FROM #tblCDSDeclarationAcceptanceDateTime Acc
FOR XML PATH('AcceptanceDateTime'), TYPE
rollback tran
错误如下所示
Msg 6846, Level 16, State 4, Line 9
XML name space prefix 'udt' declaration is missing for FOR XML column name 'udt:DateTimeString'.
任何人都知道如何将“ udt:”作为标记名称。
答案 0 :(得分:0)
您需要在查询中添加“ with xmlnamespaces”。试试这个:
begin tran
SELECT
format( GETDATE(),'yyyyMMddHHmmss') +'Z' as 'udt:DateTimeString'
INTO #tblCDSDeclarationAcceptanceDateTime
SELECT * FROM #tblCDSDeclarationAcceptanceDateTime
;WITH XMLNAMESPACES ('udt' as udt)
SELECT
'304' AS '@formatCode',
Acc.[udt:DateTimeString]
FROM #tblCDSDeclarationAcceptanceDateTime Acc
FOR XML PATH('AcceptanceDateTime'), TYPE
rollback tran
答案 1 :(得分:0)
首先
this._ipc.getFiles()
.subscribe(files => {
this.images = files;
})
无效的xml,因为没有名称空间定义。那就是为什么你得到
FOR XML列缺少XML名称空间前缀'udt'声明 名称'udt:DateTimeString'。
要提供xml名称空间定义,请使用WITH XMLNAMESPACES子句。但是这里还有更多-由于<div class="image" *ngFor="let image of images">
<img [src]="image">
</div>
属性嵌入在<AcceptanceDateTime>
<udt:DateTimeString formatCode="304">20161207010101Z</udt:DateTimeString>
</AcceptanceDateTime>
标记中,并且省略了前缀,因此属性也应使用前缀规范。请参见以下示例:
formatCode
结果
udt:DateTime
答案 2 :(得分:0)
您需要首先定义XMLNAMESPACES
,在这种情况下,它仅是udt
;WITH XMLNAMESPACES ('udt' as udt)
SELECT '304' AS '@formatCode',
Acc.[udt:DateTimeString]
FROM #tblCDSDeclarationAcceptanceDateTime Acc
for xml path('AcceptanceDateTime'),type
哪个生产
<AcceptanceDateTime xmlns:udt="udt" formatCode="304">
<udt:DateTimeString>20181102140727Z</udt:DateTimeString>
</AcceptanceDateTime>