Гость
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Странная ошибка синтаксиса / 6 сообщений из 6, страница 1 из 1
02.07.2013, 14:34
    #38317178
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
Есть такой запрос, исполняется через ODBC на iif.12.10.TC1IE.win2003 поверх WinXPsp3.
На других серверах (не informix) ошибок нет. Вроде бы и на 11.70 ошибки не было, хотя не уверен в этом.

Запрос как есть:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO "C1I0_yamapng"
(x,y,id_ver,id_contenttype,load_date,tile_size,tile_body)
SELECT 324,588,2,1,'2013-07-02 01:44:37.974',7032,?
FROM table(set{1})
WHERE NOT (7032 in (
SELECT v.tile_size
FROM "C1I0_yamapng" v,X_yamapng w
WHERE v.x=324 AND v.y=588 AND v.id_ver=w.id_ver
 AND w.ver_date<'2013-07-01 20:45:46.499'
 AND not exists(
	SELECT 1 FROM "C1I0_yamapng" b,X_yamapng e 
         WHERE b.x=324 AND b.y=588 AND b.id_ver=e.id_ver AND e.ver_date<'2013-07-01 20:45:46.499' AND e.ver_date>w.ver_date
	)
))



Ошибка: -201 SQL error: A syntax error has occurred

Запрос генерится с учётом кучи факторов, так что тут он ещё сильно простой ))). Это к тому, что обсуждать его упрощение нецелесообразно. Вместо ? передаётся непустой BLOB.

А теперь непонятки:
1. Если убрать весь WHERE (то есть оставить только INSERT SELECT FROM) - запрос на этом же блобе отлично исполняется.
2. Если убрать только последнее поле в INSERT и ? - запрос опять начинает отлично исполняться.
3. Если выполнить только SELECT 324,588,2,1,'2013-07-02 01:44:37.974',7032,NULL FROM table(set{1}) - тоже будет точно такая же ошибка (NULL указан прямо в тексте, а не подстановкой ?).

Где косяк и как его исправить?
...
Рейтинг: 0 / 0
02.07.2013, 21:11
    #38317795
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
В первом запросе попробуйте убрать кавычки:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO C1I0_yamapng
(x,y,id_ver,id_contenttype,load_date,tile_size,tile_body)
SELECT 324,588,2,1,'2013-07-02 01:44:37.974',7032,?
FROM table(set{1})
WHERE NOT (7032 in (
SELECT v.tile_size
FROM C1I0_yamapng v,X_yamapng w
WHERE v.x=324 AND v.y=588 AND v.id_ver=w.id_ver
 AND w.ver_date<'2013-07-01 20:45:46.499'
 AND not exists(
	SELECT 1 FROM C1I0_yamapng b,X_yamapng e 
         WHERE b.x=324 AND b.y=588 AND b.id_ver=e.id_ver AND e.ver_date<'2013-07-01 20:45:46.499' AND e.ver_date>w.ver_date
	)
))



Во втором запросе NULL надо привести к какому-нибудь типу
Код: sql
1.
SELECT 324,588,2,1,'2013-07-02 01:44:37.974',7032,NULL::CHAR FROM table(set{1})[/quot]
...
Рейтинг: 0 / 0
02.07.2013, 22:12
    #38317859
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
victor16В первом запросе попробуйте убрать кавычки
В общем случае это невозможно.
Да и непонятку 1 это не решает, что без WHERE на точно таких же входных данных работает.
...
Рейтинг: 0 / 0
02.07.2013, 23:00
    #38317887
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
Сергей Васкецовvictor16В первом запросе попробуйте убрать кавычки
В общем случае это невозможно..

Я к тому, что если без кавычек сработает, попробуйте установить переменную окружения DELIMIDENT.
...
Рейтинг: 0 / 0
04.07.2013, 01:43
    #38319802
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
DELIMIDENT=y уже стоит с момента установки SDK (4.10 TC1DE, если важно).
...
Рейтинг: 0 / 0
12.07.2013, 15:57
    #38329609
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ошибка синтаксиса
Может хотфикс какой надо накатить на 12.10?
Вообще нет мыслей что ли ни у кого? ))
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Странная ошибка синтаксиса / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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