|
|
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
Коллеги, В ASA 10.0.1 я столкнулся со следующей проблемой: - создаю несколько database users; - затем в одном из database user создаю таблицы, в которых есть полей, имееющие тип NVARCHAR с разными размерами вплоть до 8192, что соответствует размеру page size данной БД; - затем ввожу в эти таблицы данные, которые входят нормально; - затем делаю из этих таблиц селекты, и данные отображаются нормально; - затем путаюсь в одном из других database users создать views на эти таблицы с помощью команд типа " CREATE VIEW "USER2"."TABLE1" AS SELECT * FROM USER1.TABLE1 WHERE ID1 IN (1,2,3) "; - если в таблице размеры полей, определенный как NVARCHAR имеют размер не больше, чем 2000, то view на такую таблицу успешно создается и данные из такого view отображаются нормально; - но если в таблице размеры полей, определенный как NVARCHAR имеют размер больше, чем 2000, то тогда создание такого view падает с сообщением Could not execute statement. The size of the character column, variable or value data type exceeds 32767 SQLCODE=-1093, ODBC 3 State="HY000" Может быть можно определить в БД значение какого-то параметера, которое позволит создавать view на описанные выше таблицы ? Может быть есть какой-то другой способ решить это проблему ? Или же проблема не решается вообще и следует просто учесть найденное опытным путем ограничение размера колонок типа NVARCHAR в 2000, если необходимо на такие таблицы создавать view ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 16:38 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
Бока- затем в одном из database user создаю таблицы, в которых есть полей, имееющие тип NVARCHAR с разными размерами вплоть до 8192, что соответствует размеру page size данной БД;NVARCHAR это тип хранения юникодных строк. Размер задается в символах, каждый из которых может занимать от одного до четырех байт. Размер страницы задается в байтах. Намек понят? У тебя одно поле на самом деле занимает четыре физические страницы... И 8192*4=32768 что всего-то на один байт больше чем 32767 :) БокаМожет быть можно определить в БД значение какого-то параметера, которое позволит создавать view на описанные выше таблицы ?А в чем смысл использования таких здоровых nvarchar? Большие тексты удобнее хранить в text полях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 18:05 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
White Owl Бока- затем в одном из database user создаю таблицы, в которых есть полей, имееющие тип NVARCHAR с разными размерами вплоть до 8192, что соответствует размеру page size данной БД;NVARCHAR это тип хранения юникодных строк. Размер задается в символах, каждый из которых может занимать от одного до четырех байт. Размер страницы задается в байтах. Намек понят? У тебя одно поле на самом деле занимает четыре физические страницы... И 8192*4=32768 что всего-то на один байт больше чем 32767 :)Намек пока не понят, потому что когда в таблице определено только одно поле NVARCHAR размером 2500, то при создании view все равно падает с сообщением SQLCODE=-1093, ODBC 3 State="HY000". В таблице всего 14 полей: еще есть 1 поле NCHAR(1), одно поле NARCHAR(30), а остальные 11 полей INTEGER. Τолько если сделать modify проблемного пола до NVARCHAR(2000) создание view проходит успешно. White Owl БокаМожет быть можно определить в БД значение какого-то параметера, которое позволит создавать view на описанные выше таблицы ?А в чем смысл использования таких здоровых nvarchar? Большие тексты удобнее хранить в text полях.Длина текстов в этих полях может быть действительно большая и, в тоже время, в тексте могут встречаться спецсимволы, например немецкая буква "Ä" или знак градуса, или знак куба/квадрата и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 19:06 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
При создании вью на NVARCHAR(2500) падает с -1093? Странно это... При 8192 падать должно, а при 2500 падать еще не должно, как мне кажется... Нету у меня сейчас SA10 под рукой, не могу проверить. В любом случае, делать такие большие поля очень плохо с точки зрения производительности и занимаего пространства на диске. Для больших текстов надо брать TEXT поля. Ну или NTEXT если ты так сильно хочешь юникодность данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 20:26 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
что-то мне подсказывает, что "верхняя граница" будет 2048 (+-1)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 09:59 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
Хотя нет, видимо я не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 10:06 |
|
||
|
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
|
|||
|---|---|---|---|
|
#18+
White OwlПри создании вью на NVARCHAR(2500) падает с -1093? Странно это... При 8192 падать должно, а при 2500 падать еще не должно, как мне кажется... Нету у меня сейчас SA10 под рукой, не могу проверить. В любом случае, делать такие большие поля очень плохо с точки зрения производительности и занимаего пространства на диске. Для больших текстов надо брать TEXT поля. Ну или NTEXT если ты так сильно хочешь юникодность данных.C NTEXT view сопздаются без проблем, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 10:35 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=52&tid=2011624]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 356ms |

| 0 / 0 |
