Нужно сохранить относительно большой XML (~2000 chars, а возможно и больше) в поле таблице SQL Server?
Пока я для этого поля выбрала datatype = "text".
Пробую запустить Insert statement, и выдается exception:
"String or binary data would be truncated. The statment has been terminated"
Раньше я с такими большими полями не работала. Что тут может быть не так?
Заранее спасибо.
Как правильно сохранить большой XML в SQL Server
-
- Уже с Приветом
- Posts: 5771
- Joined: 02 Dec 1999 10:01
- Location: Saint-Petersburg --> Bellevue, WA
-
- Уже с Приветом
- Posts: 1490
- Joined: 24 Jan 1999 10:01
- Location: Russia -> village in WA
-
- Уже с Приветом
- Posts: 707
- Joined: 12 Mar 2003 22:29
- Location: Moscow->Bay Area, CA
Re: Как правильно сохранить большой XML в SQL Server
AnyaGal wrote:Пробую запустить Insert statement, и выдается exception
Как именно Вы это делаете?
1. пишете большой запрос "руками"
insert into table t_WithColText (col_text) values('<root>....</root>')
тогда надо позаботиться, чтобы одинарные и двойные ковычки были заменены на SQL приемлемый формат иначе SQL выражение будет invalid.
2. Делаете bind
insert into table t_WithColText (col_text) values(?)
тогда смотрите какой тип для bind-параметра Вы выбрали, возможно, что это varchar(len1), а вставить Вы пытаетесь XML длина которого превышает len1.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
-
- Уже с Приветом
- Posts: 5771
- Joined: 02 Dec 1999 10:01
- Location: Saint-Petersburg --> Bellevue, WA
Re: Как правильно сохранить большой XML в SQL Server
roadman wrote:AnyaGal wrote:Пробую запустить Insert statement, и выдается exception
Как именно Вы это делаете?
1. пишете большой запрос "руками"
insert into table t_WithColText (col_text) values('<root>....</root>')
тогда надо позаботиться, чтобы одинарные и двойные ковычки были заменены на SQL приемлемый формат иначе SQL выражение будет invalid.
Использую первый вариант. Двойных кавычек там скорее всего нет, а одинарные наверное есть - завтра на работе проверю, а на что можно заменить одинарные? Чего-то я совсем торможу.
-
- Уже с Приветом
- Posts: 3982
- Joined: 13 Jul 2000 09:01
- Location: SVX -> BOS -> BUR -> SJC
Re: Как правильно сохранить большой XML в SQL Server
На две одинарные подряд?AnyaGal wrote: Двойных кавычек там скорее всего нет, а одинарные наверное есть - завтра на работе проверю, а на что можно заменить одинарные?
I hated LA
-
- Уже с Приветом
- Posts: 5771
- Joined: 02 Dec 1999 10:01
- Location: Saint-Petersburg --> Bellevue, WA
Забавно, решила я вместо SQL выражения в codebehind модуле использовать stored процрдуре и передавать этот большой XML как входной параметер, как все проблемы испарились.
Интересно почему на INSERT и UPDATE при использовании Commandtype.Text SQL Server ругается, а при использовании CommandType.StoredProcedure - нет.
Интересно почему на INSERT и UPDATE при использовании Commandtype.Text SQL Server ругается, а при использовании CommandType.StoredProcedure - нет.