I asked question in very blurry manner because I cannot explain in short sentence what is my problem about.
In general I have a set of procedures which transforms text and XML. Inside the procedures I have a lot of NVARCHAR
and XML
variables and a table with XML
column. Inside my data I have special letters (for example ò
). When I run all the code the special character disappears and is visible as ?
– which mean that I got VARCHAR
instead of NVARCHAR
.
In general I got everything ok until the final steps. I got EXEC
which call stored procedure with ad hoc constructed variable of type NVARCHAR
. I have into a table which contains XML
field. In this case I got ?
. If I run procedure manually (not in EXEC INTO
) I got proper symbol.
Any ideas why this happens?
I checked all variables and they are NVARCHAR
.
Best Answer
The question is a bit vague, but typically when you have Unicode characters and you end up with question marks or boxes, the problem is actually relatively simple. When you declare a Unicode string with
'single quotes'
, you need to prefix them with anN''
. N stands for national, not nvarchar (admittedly, a U prefix - for Unicode - would have made more sense).Compare:
Results: