Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000 / 7 сообщений из 7, страница 1 из 1
14.04.2008, 16:38
    #35254030
Бока
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
Коллеги,
В 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 ?
...
Рейтинг: 0 / 0
14.04.2008, 18:05
    #35254336
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
Бока- затем в одном из database user создаю таблицы, в которых есть полей, имееющие тип NVARCHAR с разными размерами вплоть до 8192, что соответствует размеру page size данной БД;NVARCHAR это тип хранения юникодных строк. Размер задается в символах, каждый из которых может занимать от одного до четырех байт. Размер страницы задается в байтах.
Намек понят? У тебя одно поле на самом деле занимает четыре физические страницы... И 8192*4=32768 что всего-то на один байт больше чем 32767 :)

БокаМожет быть можно определить в БД значение какого-то параметера, которое позволит создавать view на описанные выше таблицы ?А в чем смысл использования таких здоровых nvarchar? Большие тексты удобнее хранить в text полях.
...
Рейтинг: 0 / 0
14.04.2008, 19:06
    #35254440
Бока
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
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 полях.Длина текстов в этих полях может быть действительно большая и, в тоже время, в тексте могут встречаться спецсимволы, например немецкая буква "Ä" или знак градуса, или знак куба/квадрата и т.п.
...
Рейтинг: 0 / 0
14.04.2008, 20:26
    #35254563
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
При создании вью на NVARCHAR(2500) падает с -1093? Странно это... При 8192 падать должно, а при 2500 падать еще не должно, как мне кажется... Нету у меня сейчас SA10 под рукой, не могу проверить.
В любом случае, делать такие большие поля очень плохо с точки зрения производительности и занимаего пространства на диске. Для больших текстов надо брать TEXT поля. Ну или NTEXT если ты так сильно хочешь юникодность данных.
...
Рейтинг: 0 / 0
15.04.2008, 09:59
    #35255091
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
что-то мне подсказывает, что "верхняя граница" будет 2048 (+-1)...
...
Рейтинг: 0 / 0
15.04.2008, 10:06
    #35255111
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
Хотя нет, видимо я не прав.
...
Рейтинг: 0 / 0
15.04.2008, 10:35
    #35255233
Бока
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000
White OwlПри создании вью на NVARCHAR(2500) падает с -1093? Странно это... При 8192 падать должно, а при 2500 падать еще не должно, как мне кажется... Нету у меня сейчас SA10 под рукой, не могу проверить.
В любом случае, делать такие большие поля очень плохо с точки зрения производительности и занимаего пространства на диске. Для больших текстов надо брать TEXT поля. Ну или NTEXT если ты так сильно хочешь юникодность данных.C NTEXT view сопздаются без проблем, спасибо.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Πроблема создать view на таблицу с полем типа NVARVHAR и размером большим 2000 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]