Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
привет, всем!!! :) создала базу в DB2 v9 для хранения XML данных. По документации в XML полях можно хранить до 2 ГБ информации. При этом, когда я пытаюсь заполнить таблицу (INSERT), выдается ошибка ограничения на строку:( SQL0102N Слишком длинная строчная константа (начинается с "'<?xml version="1.0" encoding="utf-8"?> <document xmlns="http://www.lo"). SQLSTATE=54002 Как можно решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 11:15 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Как делаете вставку? Из прикладной программы через переменные? Настройки табличного пространства для хранения xml данных какие? Вообще сам загружаемый файл сколько весит? Скорее всего вы пытаетесь в инсерт вставить все содержимое xml-файла, именно тогда частенько выкидывает аткую ошибку Делайте так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 11:55 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Это моя первая база в DB2 , вот сейчас разбираюсь, что к чему:) Па задаче мне из Лотуса надо заполнять таблицу XML данными, Таблица простая: автор id INTEGER doc_id VARCHAR 10 doc_xml XML Да, получается, что я пытаюсь полность вставить в запрос весь xml: автор insert into DB_TEST (doc_id, doc_xml) values ('docid_name','< весь текст ХМЛ>') РАзмер вставляемого XML получается где-то 52 КВ В редакторе команд ДБ2 такой запрос тоже не проходит:( Можно как-то через редактор команд такое сделать? Или можно ваш пример переделать под хранимую процедуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 12:38 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
DB2Adventurer Делайте так: Код: plaintext 1. 2. 3. 4. По аналогии сделала тоже самое в лотусе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Все равно ошибка:"Слишком длинная строчная константа" :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 15:09 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
а сколько символов в константе. там есть ограничение на длину. на z/OS 255 байт, на воркстейшн вроде 32K z/OS -- 'aaa' concat 'bbb' concat 'ccc' на воркстейшн не нарывался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 16:37 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Не уверен, но всё же... когда создавалась таблица хранение данных LONG указывалось в TABLESPACE с размером страницы побольше? Допустим, в 32K? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 16:47 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Alexey PopovНе уверен, но всё же... когда создавалась таблица хранение данных LONG указывалось в TABLESPACE с размером страницы побольше? Допустим, в 32K? да это не оно. сторчная константа это литерал. insert into aa values ( 'xxx' ) 'xxx' - сторчная константа , длина = 3. а 'xxx' || 'zzz' это уже не константа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 16:55 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Осталось проверить в каком виде Lotus отдает запрос в DB2. А то может оказаться, что он подставляет значения параметров и уже в таком виде отдает запрос. Я не специалист по лотусу, нужно посмотреть как он подключается к DB2 и для этого API включить трассировку SQL. Тогда будет ясно что отдается и, возможно, появятся варианты как это исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 17:06 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
А как без лотуса, просто в Редакторе команд ДБ2 добавить в поле таблицы ХМЛ большое значение??? Потому что даже напрямую через редактор так же выдается ошибка величины константы МОжет как-то можно через сохраняемые процедуры или импорт из файла? ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 17:33 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
jcolorА как без лотуса, просто в Редакторе команд ДБ2 добавить в поле таблицы ХМЛ большое значение??? Потому что даже напрямую через редактор так же выдается ошибка величины константы МОжет как-то можно через сохраняемые процедуры или импорт из файла? ? ну напиши CONCAT где нибудь посередине константы. разбей на две константы поменьше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 17:37 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
fasafsaf ну напиши CONCAT где нибудь посередине константы. разбей на две константы поменьше. уже просто в редакторе ДБ2 делаю INSERT и вставляемое поле разбиваю при помощи CONCAT ошибка: несовместимость данных :( При этом если значение ХМЛ небольшое, то нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 19:10 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
jcolorЭто моя первая база в DB2 , вот сейчас разбираюсь, что к чему:) Па задаче мне из Лотуса надо заполнять таблицу XML данными, Таблица простая: автор id INTEGER doc_id VARCHAR 10 doc_xml XML Да, получается, что я пытаюсь полность вставить в запрос весь xml: автор insert into DB_TEST (doc_id, doc_xml) values ('docid_name','< весь текст ХМЛ>') РАзмер вставляемого XML получается где-то 52 КВ В редакторе команд ДБ2 такой запрос тоже не проходит:( Можно как-то через редактор команд такое сделать? Или можно ваш пример переделать под хранимую процедуру? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 03:16 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Вызовите процедуру из лотуса, должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 03:17 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
В чем ошибка при создании процедуры в редакторе команд ДБ2 ?? Код: plaintext 1. 2. 3. 4. 5. 6. выдается ошибка: SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 17:58 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Тот же самый запрос по созданию хранимой процедуры сделала из лотусовского агента - сработало, хранимая процедура создалась:) почему невозможно это же делать в редакторе команд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 18:26 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
jcolorВ чем ошибка при создании процедуры в редакторе команд ДБ2 ?? Код: plaintext 1. 2. 3. 4. 5. 6. выдается ошибка: SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" в символе ';' нужно установить какой-нибудь другой символ в редакторе команд ДБ2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 18:35 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
[quot fasafsaf в символе ';' нужно установить какой-нибудь другой символ в редакторе команд ДБ2 [/quot] :( Пробовала вместо символа ";" - символы "@" и "!" Ошибка - Обнаружен неправильный элемент :( А как в ДБ2 запускаюся хранимые процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 18:45 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
В чем может быть ошибка при запуске процедуры: Код: plaintext 1. ОШИБКА: Значение несовместимо с типом данных назначения. Имя назначения - "P_DOC_XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 19:16 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
1. Скорее всего он ищет родительский элемент. 2. У меня вылазила такая же ошибка. Видимо он воспринимает '<h1>text</h1> ' как VARCHAR Попробуйте так Код: plaintext ________________________________________________________ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 05:50 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
jcolorВ чем ошибка при создании процедуры в редакторе команд ДБ2 ?? Код: plaintext 1. 2. 3. 4. 5. 6. выдается ошибка: SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 05:53 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Hektor2. У меня вылазила такая же ошибка. Видимо он воспринимает '<h1>text</h1> ' как VARCHAR Попробуйте так Код: plaintext Спасибо :) Так получилось! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 12:55 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Hektor Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Все равно ошибка SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" после текста "_DOC_ID , P_DOC_XML)". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 12:58 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
[quot DB2Adventurer] Код: plaintext 1. 2. 3. 4. создала процедуру и из лотуса пытаюсь занести большие данные все равно выдет ошибку на длину строковой константы :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 13:39 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Как выглядит запрос, которым вызываете ХП? ________________________________________________________ ________________________________________________________ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:18 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
HektorКак выглядит запрос, которым вызываете ХП? ________________________________________________________ ________________________________________________________ В агенте Лотуса вызываю ХП следующим образом: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:33 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Здесь я вам не помогу. Попробуйте без замены кавычек. Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT doc_xml)) ************************************************************* Любая рутинная работа должна выполняться машиной. Даже если это — написание кода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:22 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
HektorЗдесь я вам не помогу. Попробуйте без замены кавычек. Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT doc_xml)) ************************************************************* Любая рутинная работа должна выполняться машиной. Даже если это — написание кода... Пока добилась загрузки больших xml только через импорт из файла :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 10:40 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
ИМХО нужно включить трассировку и смотреть какой именно SQL-оператор формируется и как передается параметр (текст XML). Подозрение, что Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 10:54 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровИМХО нужно включить трассировку и смотреть какой именно SQL-оператор формируется и как передается параметр (текст XML). Подозрение, что Код: plaintext Но при вызове процедуры из редактора команд db2 тоже выдается та же ошибка о длине строчной константы, а если делить xml через CONCAT Код: plaintext 1. то ошибка : SQL0440N Не найдено авторизованной подпрограммы "XMLPARSE" типа "FUNCTION" с совместимыми аргументами. SQLSTATE=42884 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 15:47 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
а если Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT BLOB ('<xml часть 1>' CONCAT '<xml часть 2>' CONCAT '<xml часть 3>' CONCAT '<xml часть 4>' ) )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 15:56 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
fasafsafа если Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT BLOB ('<xml часть 1>' CONCAT '<xml часть 2>' CONCAT '<xml часть 3>' CONCAT '<xml часть 4>' ) )) какой-то замкнутый круг :( опять приходим к ошибке SQL0137N Длина результата операции "CONCAT" больше, чем "0000032700 ". SQLSTATE=54006 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 16:00 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
а если Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT BLOB('<xml часть 1>') CONCAT BLOB('<xml часть 2>') CONCAT BLOB('<xml часть 3>') CONCAT BLOB('<xml часть 4>') ) ) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 16:03 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
fasafsafа если Call JCOLOR.DB_TEST('id_new', XMLPARSE(DOCUMENT BLOB('<xml часть 1>') CONCAT BLOB('<xml часть 2>') CONCAT BLOB('<xml часть 3>') CONCAT BLOB('<xml часть 4>') ) ) ? УРРРААА ! ) заработало :) СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 16:11 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
[quot jcolor] Но при вызове процедуры из редактора команд db2 тоже выдается та же ошибка о длине строчной константы [src] Совершенно верно, в редакторе команд вы же подставляете целиком весь XML-файл в строку запроса. А приложения (правильно написанные) в текст запроса вставляют только объявления параметров, а значения передаются отдельно и все отлично работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 17:30 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
да фигня всё. во какие длинные запросы можно писать :) SQL Maximum total length of an SQL statement (in bytes) 2 097 152 Maximum number of tables referenced in an SQL statement or a view storage Maximum number of host variable references in an SQL statement 32 767 Maximum number of constants in a statement storage Maximum number of elements in a select list7 1012 Maximum number of predicates in a WHERE or HAVING clause storage Maximum number of columns in a GROUP BY clause7 1012 Maximum total length of columns in a GROUP BY clause (in bytes)7 32 677 Maximum number of columns in an ORDER BY clause7 1012 Maximum total length of columns in an ORDER BY clause (in bytes)7 32 677 Maximum level of subquery nesting storage Maximum number of subqueries in a single statement storage Maximum number of values in an insert operation7 1012 Maximum number of SET clauses in a single update operation7 1012 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 18:22 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Из командного центра можно запускать только запросы не превышающие 32К. Лучше пользоваться командной строкой, она работает всегда и понимает все параметры. Только я не понял почему из приложения лотуса не удается загрузить xml? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 04:09 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
DB2AdventurerИз командного центра можно запускать только запросы не превышающие 32К. Лучше пользоваться командной строкой, она работает всегда и понимает все параметры. Только я не понял почему из приложения лотуса не удается загрузить xml? из-из ограничения на длину строковой константы. наверно, лотус подставляет чьд как есть т.е. выполняется навенно что-то вроде insert into aaa values ( '<?xml version="1.0" encoding="UTF-8" ?> <defaultsettings> .... </defaultsettings>') с точки зрения sql, '<?xml version="1.0" encoding="UTF-8" ?> <defaultsettings> .... </defaultsettings>' это константа, и она слишком длинная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 09:53 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров Совершенно верно, в редакторе команд вы же подставляете целиком весь XML-файл в строку запроса. А приложения (правильно написанные) в текст запроса вставляют только объявления параметров, а значения передаются отдельно и все отлично работает! Похоже что в Лотус-скрипте передается строка целиком:( Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 11:08 |
|
||
|
ограничение на строку запроса!
|
|||
|---|---|---|---|
|
#18+
DB2AdventurerТолько я не понял почему из приложения лотуса не удается загрузить xml? с использованием лотус-скрипт, даже с использованием параметров похоже, что строка запроса передается целиком, и на данный момент у меня получилось передавать большой хмл только через импорт из файла или через разбиение потока на указанное кол-во байт Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 11:13 |
|
||
|
|

start [/forum/topic.php?all=1&fid=43&tid=1604423]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 365ms |

| 0 / 0 |
