patternsqlModerate
FOR XML could not serialize the data because it contains character (0x0000)
Viewed 0 times
theserializecharactercouldxmldatabecausecontainsfornot
Problem
I have a big query (if necessary I will post it here) and I'm getting this error:
Msg 6841, Level 16, State 1, Line 1
FOR XML could not serialize the
data for node 'NoName' because it contains a character (0x0000) which
is not allowed in XML. To retrieve this data using FOR XML, convert it
to binary, varbinary or image data type and use the BINARY BASE64
directive.
The only part I use
But, what is
This is one of the subqueries (the only part I have FOR XML):
Msg 6841, Level 16, State 1, Line 1
FOR XML could not serialize the
data for node 'NoName' because it contains a character (0x0000) which
is not allowed in XML. To retrieve this data using FOR XML, convert it
to binary, varbinary or image data type and use the BINARY BASE64
directive.
The only part I use
FOR XML is here:WHERE
(CodFuncionario = Results.CodFuncionario)
FOR XML PATH(''), TYPE).value('(./text())[1]',
'VARCHAR(MAX)'), 1, 2, '') AS [Experiencia]But, what is
node noname? and how can I look for this value: (0x0000)This is one of the subqueries (the only part I have FOR XML):
SELECT
[CodFuncionario],
STUFF
(
(
SELECT
' / ' +
CAST
(
[DescFuncao] + '-' +
[DescTempoExperiencia]
AS VARCHAR(MAX)
)...
FROM
[Linked_Server].db.dbo.tblFuncionarioExperiencia T0
INNER JOIN
[Linked_Server].db.dbo.tblFuncao T1 On T0.codFuncao = T1.CodFuncao
INNER JOIN
[Linked_Server].db.dbo.tblTempoExperiencia T2 ON T0.CodTempoExperiencia = T2.CodTempoExperiencia
WHERE
(CodFuncionario = Results.CodFuncionario)
FOR XML PATH(''), TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '') AS [Experiencia]
FROM
[Linked_Server].db.dbo.tblFuncionarioExperiencia Results
GROUP BY
CodFuncionario) as T2
On T0.CodFuncionario = T2.CodFuncionario
Left Join...Solution
The line:
Should be:
...
SELECT
[CodFuncionario],
STUFF
(
(
SELECT
' / ' +
CAST
(
[DescFuncao] + '-' +
[DescTempoExperiencia]
AS VARCHAR(MAX)
)...Should be:
...
SELECT
[CodFuncionario],
STUFF
(
(
SELECT
' / ' +
CAST
(
replace -- *** NEW! ***
(
[DescFuncao] + '-' +
[DescTempoExperiencia],
char(0),
''
)
AS VARCHAR(MAX)
)...Code Snippets
...
SELECT
[CodFuncionario],
STUFF
(
(
SELECT
' / ' +
CAST
(
[DescFuncao] + '-' +
[DescTempoExperiencia]
AS VARCHAR(MAX)
)......
SELECT
[CodFuncionario],
STUFF
(
(
SELECT
' / ' +
CAST
(
replace -- *** NEW! ***
(
[DescFuncao] + '-' +
[DescTempoExperiencia],
char(0),
''
)
AS VARCHAR(MAX)
)...Context
StackExchange Database Administrators Q#107238, answer score: 13
Revisions (0)
No revisions yet.