DB2: Как устранить ошибку «SQL0206N «INVOICEDATE» недопустим в контексте, где он используется.SQLSTATE=42703»

DB2: Как устранить ошибку «SQL0206N «INVOICEDATE» недопустим в контексте, где он используется.SQLSTATE=42703»

В Linux я подключился к DB2 и пытаюсь получить самый старый счет-фактуру. При использовании этого запроса ниже выдается ошибкаSQL0206N "INVOICEDATE" is not valid in the context where it is used.SQLSTATE=42703

db2 "select min(INVOICEDATE) from RHA2";

Как мне исправить эту ошибку? Есть ли какая-нибудь помощь?

Заранее спасибо.

решение1

$ db2 "? sql206"

SQL0206N "" недопустимо в контексте, в котором оно используется.

Объяснение:

Эта ошибка может возникнуть в следующих случаях:

  • Для оператора INSERT или UPDATE указанный столбец не является столбцом таблицы или представления, указанного в качестве объекта вставки
    или обновления.

  • Для оператора SELECT или DELETE указанный столбец не является столбцом ни одной из таблиц или представлений, указанных в предложении FROM в
    операторе.

  • Для оператора присваивания имя ссылки не преобразуется в имя столбца или переменной.

  • При ссылке на поле в переменной типа строки имя ссылки не разрешается в имя какого-либо поля в типе строки.

  • Для предложения ORDER BY указанный столбец является ссылкой на коррелированный столбец в подвыборке, что не допускается.

  • Для оператора SELECT в конструкторе параметризованного курсора ссылка на "" не соответствует столбцу или переменной в области действия. Локальные переменные и параметры SQL-программ не рассматриваются в области действия параметризованных курсоров.

  • Для отдельного составного SQL-выражения (скомпилированного):

    • Ссылка "" не разрешается в имя столбца или локальной переменной, находящейся в области действия.

    • Имя условия "", указанное в операторе SIGNAL, не было объявлено.

    • При ссылке на поле в переменной типа строки имя ссылки не разрешается в имя какого-либо поля в типе строки.

  • Для операторов CREATE TRIGGER, CREATE METHOD, CREATE FUNCTION или CREATE PROCEDURE:

    • Ссылка "" не разрешается в имя столбца, локальной переменной или переходной переменной.

    • Ссылка "" разрешается в имя локальной переменной, которая недоступна в текущей области действия.

    • Имя условия "", указанное в операторе SIGNAL, не было объявлено.

    • При ссылке на поле в переменной типа строки имя ссылки не разрешается в имя какого-либо поля в типе строки.

  • Для оператора CREATE TRIGGER:

    • Ссылка делается на столбец предметной таблицы без использования СТАРОГО или НОВОГО имени корреляции.

    • Левая часть назначения в операторе SET transition-variable в вызванном действии указывает старую переходную переменную, тогда как поддерживается только новая переходная переменная.

  • Для оператора CREATE FUNCTION с предложением PREDICATES:

    • Оператор RETURN функции SQL ссылается на переменную, которая не является параметром или другой переменной, находящейся в области действия оператора RETURN.

    • Предложение FILTER USING ссылается на переменную, которая не является именем параметра или именем выражения в предложении WHEN.

    • Цель поиска в правиле эксплуатации индекса не соответствует имени некоторого параметра создаваемой функции.

    • Аргумент поиска в правиле использования индекса не соответствует ни имени выражения в предложении EXPRESSION AS, ни имени параметра создаваемой функции.

  • Для оператора CREATE INDEX EXTENSION предложение RANGE THROUGH или предложение FILTER USING ссылается на переменную, которая не является именем параметра, которое можно использовать в предложении.

  • Для ссылки на параметризованную курсорную переменную локальная переменная SQL или параметр SQL, на которые ссылается оператор select, используемый в
    определении параметризованной курсорной переменной, недоступен в текущей области действия.

  • Для ссылки на период указанный период отсутствует ни в одной из исходных или целевых таблиц или представлений выписки.

Заявление не может быть обработано.

Ответ пользователя:

Проверьте, что имена указаны правильно в операторе SQL. Для оператора SELECT убедитесь, что все требуемые таблицы названы в предложении FROM. Для подвыборки в предложении ORDER BY убедитесь, что нет ссылок на коррелированные столбцы. Если для таблицы используется имя корреляции, проверьте, что последующие ссылки используют имя корреляции, а не имя таблицы.

Для оператора CREATE TRIGGER убедитесь, что в левой части назначений в операторе SET transition-variable указаны только новые переменные перехода, а для всех ссылок на столбцы целевой таблицы указано имя корреляции.

Для отдельного составного оператора SQL, оператора CREATE FUNCTION, CREATE PROCEDURE или CREATE TRIGGER убедитесь, что столбцы или переменные доступны в области действия текущего составного оператора SQL.

Для полной выборки, встроенной в XQuery с использованием функции db2-fn:sqlquery, ссылка внутри полной выборки должна быть одной из следующих: столбец в контексте полной выборки, глобальная переменная или параметр, переданный в новый контекст SQL с использованием дополнительного аргумента функции db2-fn:sqlquery.

SQL-код: -206

sqlstate: 42703

Связанный контент