2011-12-23 3 views
1

Может кто-нибудь дать объяснение следующее:Курсор SQL_CURLH200C1 не находится в подготовленном состоянии

select * from 'table' as t where t.identifier = 1234567890 

Возвращает: SQL-инструкция не поддерживается. SQLCODE = -142, SQLSTATE = 42612


select * from 'table' as t where t.identifier = 12345 

Возвращает: 1 ряд (ы)


идентификатор определяется как PIC S9 (11) КОМП-3, DB2

+0

Работает ли он с 123456789, 12345678 или 1234567? –

+0

А где курсор входит в это? Я просто вижу регулярный оператор SELECT. И _please_ не называете ваши таблицы (или столбцы) после ключевых слов (или используйте пробелы). Сообщение SQLSTATE означает, что оператор недействителен в этом контексте - есть ли что-то еще в этом отношении? –

ответ

2

'table' - строковый литерал со значением table, поэтому он не может использоваться в качестве имени таблицы.

Если таблица действительно называется таблица, то вам нужно использовать это:

выберите * из "СТОЛ"

или

выберите * из "таблицы"

в зависимости от как вы создали эту таблицу с именем table.

Смежные вопросы