Dynamic sql error code 206

I use IBDac with Delphi to connect to Firebir db and suddenly when I tried to run the software I got this error Dynamic SQL ErrorSQL error code = -206 Column unknown table1.MyField_ID At line...

Change your case, as it looks like your database layer is automatically quoting it if you use CamelCase.

A quick test in a Firebird 2.5 database here shows:

SQL> select t1.usuario, t1.NoExisto from sg_usuario t1;
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-T1.NOEXISTO
-At line 1, column 23


SQL> select t1.usuario, "t1.NoExisto" from sg_usuario t1;
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-t1.NoExisto
-At line 1, column 34

As you see, the database engine generates an error with camel case only when it gets the SQL query using quotes.

I suggest you to try myfield_id or use the correct case you have in your field name.

    select 
        table1.pkfield1,
        table1.field_no,
        table1.fk1_id,
        table1.fk2_id,
        table1.myfield_id, 
        table1.bfield,
        table2.desc1,
        table2.desc2,
        table2.desc3
    from table2
    right outer table1 on (table2.pk1_id = table1.fk1_id)
    Order by table1.fk1_id, table1.field_no desc

Симптомы

При выполнении запроса с помощью управляемого поставщика для DB2, который входит в состав Microsoft узла Integration Server 2013 запрос может произойти сбой и появляется следующее сообщение об ошибке:

SQLCODE -206

Причина

Эта проблема может возникнуть при использовании класса StringBuilder и оператор разбивается на несколько строк. Класс StringBuilder добавляет дополнительные символы в функции AppendLine . Это приводит к возникновению проблем в средстве синтаксического анализа.

Решение

Информация о накопительном пакете обновления

Исправление, устраняющее эту проблему включено в Накопительное обновление 1 для узла Integration Server 2013.

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».

Нужна дополнительная помощь?

Submitted by: Ukrtelecom (ukrtelecom)

WORK —
insert into stat_wtmp (bill_serv_id,
login,
domain_name,
calling_station_id,
called_station_id,
nas_ip_address,
framed_ip_address,
nas_port_id,
session_id,
connect_info,
time_begin,
session_active,
cur_input_octets,
cur_output_octets,
/* connect_info,*/
time_end
)
values(:CUR_BILL_SERVICE_ID,
:login,
:domain_name,
:caller_id,
:called_id,
:nas_ip_addr,
:user_ip_addr,
:nas_port_id,
:session_id,
:connect_info,
:packet_timestamp,
:cur_session_active,
:input_octets,
:output_octets,
/* :connect_info,*/
:packet_timestamp);

NOT WORK —
insert into stat_wtmp (bill_serv_id,
login,
domain_name,
calling_station_id,
called_station_id,
nas_ip_address,
framed_ip_address,
nas_port_id,
session_id,
connect_info,
time_begin,
session_active,
cur_input_octets,
cur_output_octets,
connect_info,
time_end
)
values(:CUR_BILL_SERVICE_ID,
:login,
:domain_name,
:caller_id,
:called_id,
:nas_ip_addr,
:user_ip_addr,
:nas_port_id,
:session_id,
:connect_info,
:packet_timestamp,
:cur_session_active,
:input_octets,
:output_octets,
:connect_info,
:packet_timestamp);

Dynamic SQL Error.
SQL error code = -206.
unknown ISC error 336397210.
unknown ISC error 336397208.
FIELD — connect_info;
TABLE STAT_WTMP:

CREATE TABLE STAT_WTMP (
ID_WTMP_ITEM ID /* ID = INTEGER DEFAULT 0 */,
BILL_SERV_ID ID /* ID = INTEGER DEFAULT 0 */,
NAS_IP_ADDRESS IPADDRESS /* IPADDRESS = VARCHAR(15) */,
NAS_PORT_ID BIGINTEGER /* BIGINTEGER = BIGINT */,
TIME_BEGIN ACCOUNT /* ACCOUNT = INTEGER */,
TIME_END ACCOUNT /* ACCOUNT = INTEGER */,
SESSION_TIME COUNTER /* COUNTER = INTEGER */,
CALLING_STATION_ID VARCHAR128 /* VARCHAR128 = VARCHAR(128) */,
CALLED_STATION_ID VARCHAR128 /* VARCHAR128 = VARCHAR(128) */,
FRAMED_IP_ADDRESS IPADDRESS /* IPADDRESS = VARCHAR(15) */,
SESSION_ID VARCHAR128 /* VARCHAR128 = VARCHAR(128) */,
INPUT_OCTETS BIGINTEGER DEFAULT 0 /* BIGINTEGER = BIGINT */,
CUR_INPUT_OCTETS BIGINTEGER DEFAULT 0 /* BIGINTEGER = BIGINT */,
OUTPUT_OCTETS BIGINTEGER DEFAULT 0 /* BIGINTEGER = BIGINT */,
CUR_OUTPUT_OCTETS BIGINTEGER DEFAULT 0 /* BIGINTEGER = BIGINT */,
CONNECT_INFO VARCHAR64 /* VARCHAR64 = VARCHAR(64) */,
LOGIN VARCHAR32 /* VARCHAR32 = VARCHAR(32) */,
DOMAIN_NAME VARCHAR64 /* VARCHAR64 = VARCHAR(64) */,
SESSION_ACTIVE TRUEFALSE DEFAULT 1 /* TRUEFALSE = INTEGER */,
DATE_WR DATETIME DEFAULT ‘now’ /* DATETIME = TIMESTAMP */,
SPEED_UP VARCHAR16 /* VARCHAR16 = VARCHAR(16) */,
SPEED_DOWN VARCHAR16 /* VARCHAR16 = VARCHAR(16) */
);

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    информация о разделе

    user posted image Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных — обсуждаем в разделе «Базы данных: общие вопросы». Убедительная просьба — соблюдать «Правила форума» и не пренебрегать «Правильным оформлением своих тем». Прежде, чем создавать тему, имеет смысл заглянуть в раздел «Базы данных: FAQ», возможно там уже есть ответ.

    >
    [Firebird] В запросе не определяется поле
    , Рекурсивный запрос не разруливает поле

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    18.10.12, 10:04

      Full Member

      ***

      Рейтинг (т): 5

      Привет. У меня есть иерархическая таблица XXXX. Пытаюсь для нода определить парентов и чайлдов, чтобы произвести вставку в другую таблицу. Однако Firebird 2.1 ругается на:

      Column does not belong to referenced table.
      Dynamic SQL Error.
      SQL error code = -206.
      Column unknown.
      C.ID.
      At line 8, column 46.

      Сам текст запроса: поля есть. Если поменять куски CHILDREN и PARENT_LIST местами, то будет ругаться на то, что нет PT.ID. В чем может быть проблема?

      ExpandedWrap disabled

        MERGE INTO MO_DATAGROUP_LINK DGL USING

        (

        WITH RECURSIVE

        CHILDREN AS (

        SELECT 923 ID FROM RDB$DATABASE

        UNION ALL

        SELECT S.ID FROM SPRT S JOIN CHILDREN C ON C.ID = S.PARENTID

        ),

        PARENT_LIST AS (

          SELECT PARENTID ID FROM SPRT WHERE ID = 923

          UNION ALL

          SELECT PARENTID ID FROM SPRT T JOIN PARENT_LIST PT ON T.ID = PT.ID)

        SELECT ID FROM PARENT_LIST WHERE ID IS NOT NULL

        UNION ALL

        SELECT ID FROM CHILDREN

        ) PX ON DGL.DATAID = PX.ID AND DGL.DATAGROUPID = 896 AND DGL.TABLENAME = ‘XXXX’

        WHEN NOT MATCHED THEN INSERT (DATAGROUPID, TABLENAME, DATAID) VALUES (:D_VALUE, ‘XXXX’, PX.ID);


      Romkin



      Сообщ.
      #2

      ,
      19.10.12, 15:39

        А где у тебя таблица C? ;)


        spy_



        Сообщ.
        #3

        ,
        22.10.12, 07:11

          Full Member

          ***

          Рейтинг (т): 5

          Romkin, «JOIN CHILDREN C ON», не?


          Romkin



          Сообщ.
          #4

          ,
          22.10.12, 08:46

            Присоедини псевдоним ко всем полям, оно путается скорее всего


            spy_



            Сообщ.
            #5

            ,
            23.10.12, 04:57

              Full Member

              ***

              Рейтинг (т): 5

              Если присоединять сюда «SELECT S.ID FROM SPRT S JOIN CHILDREN C ON C.ID = S.PARENTID» по аналогии с выборкой PARENT_LIST, то толку никакого, к сожалению, та же ошибка. Кстати, если поменять местами блоки CHILDREN и PARENT_LIST как есть, то будет уже ругаться на выборку PARENT_LIST аналогично.


              Игорь Акопян



              Сообщ.
              #6

              ,
              23.10.12, 07:33

                простите, а это что без запятой пишется?

                ExpandedWrap disabled

                  SELECT PARENTID ID FROM


                spy_



                Сообщ.
                #7

                ,
                23.10.12, 14:02

                  Full Member

                  ***

                  Рейтинг (т): 5

                  Игорь Акопян, а почему оно должно писаться с запятой?

                  Добавлено 23.10.12, 14:05
                  Я не понимаю, господа, вы теоретически пытаетесь что-то понять и найти синтаксические ошибки? Не проще ли к себе в IBExpert или FlameRobin скопировать запрос и проверить?
                  Структура таблиц тривиальна:
                  SPRT (ID — int PK, PARENTID — int FK to SPRT)
                  MO_DATAGROUP_LINK (ID — int PK, DATAGROUPID — int, TABLENAME — varchar, DATAID — int)
                  Причем достаточно двух таблиц, т.к. MO_DATAGROUP_LINK.DATAID — это ссылка на SPRT.ID без FK (там FK не нужен по архитектурным причинам).


                  Alex2011



                  Сообщ.
                  #8

                  ,
                  08.11.12, 09:17

                    Member

                    **

                    Рейтинг (т): 1

                    Думаю что проще(или даже НАДО) в хр.процедуре сделать,особенно если там рекурсия.(Разбираться с твоим запросом лень) Я когда-то писал хр.процедуру (с запросом выходил большой гемор-я решил,что это невозможно сделать,хотя может и не так-не претендую на истину в последней инстанции),в которой определял верхнего парента,всех чайдлов,если не ошибаюсь.(давно было,но процедуру найти,думаю, можно) Похоже и тебе что-то аналогичное надо?

                    Сообщение отредактировано: Alex2011 — 08.11.12, 10:14

                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                    0 пользователей:

                    • Предыдущая тема
                    • Базы данных: SQL
                    • Следующая тема

                    Рейтинг@Mail.ru

                    [ Script execution time: 0,0345 ]   [ 15 queries used ]   [ Generated: 9.02.23, 10:34 GMT ]  

                    4 / 4 / 0

                    Регистрация: 23.08.2010

                    Сообщений: 103

                    1

                    30.06.2011, 12:42. Показов 8619. Ответов 4


                    Вот такую беду получаю:
                    «
                    INSERT INTO PUT_KATALOGA (P) VALUES (‘c’);;

                    /*Column does not belong to referenced table.
                    Dynamic SQL Error.
                    SQL error code = -206.
                    Column unknown.
                    P.
                    At line 1, column 27.
                    */

                    — [30.06.2011 12:23:24]—————
                    — Приложение: ibmanager.exe
                    — Операция: Rollback (Hard rollback)

                    Transaction ID (719)
                    «
                    Колонка эта есть. Любые советы.

                    __________________
                    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



                    0



                    Programming

                    Эксперт

                    94731 / 64177 / 26122

                    Регистрация: 12.04.2006

                    Сообщений: 116,782

                    30.06.2011, 12:42

                    Ответы с готовыми решениями:

                    Ошибка «Column does not belong to referenced table». при добавлении триггера (Firebird/ibexpert)
                    Добавить в сценарий операторы создания генераторов, исключений и триггеров. Для каждого…

                    Ошибка «There is no unique constraint matching given keys for referenced table»
                    Замучила.:cry:
                    Создал табличку. Потом вторую, с некоторыми полями, ссылающимися на поля из первой…

                    Cannot insert the value NULL into column ‘Id’, table ‘.dbo.Records’;column does not allow nulls
                    Уважаемые, т.к. мой мозг не способен понять, почему вылазит данное исключение, когда я добавляю…

                    Multi select from same table and column
                    SELECT `tag`, `count` FROM `tags` WHERE `tag` IN (".implode(‘,’, $tagsArr).")
                    Пытаюсь сделать вот…

                    4

                    912 / 877 / 62

                    Регистрация: 06.01.2010

                    Сообщений: 2,367

                    Записей в блоге: 6

                    30.06.2011, 13:59

                    2

                    Выгрузите DDL таблицы в скрипт с помощью своего инструмента и убедитесь, что колонка имеет другое имя. Если оно взято в кавычки, то и вам придется делать тоже самое.



                    0



                    4 / 4 / 0

                    Регистрация: 23.08.2010

                    Сообщений: 103

                    30.06.2011, 14:20

                     [ТС]

                    3

                    Цитата
                    Сообщение от arni
                    Посмотреть сообщение

                    Выгрузите DDL таблицы в скрипт с помощью своего инструмента и убедитесь, что колонка имеет другое имя. Если оно взято в кавычки, то и вам придется делать тоже самое.

                    Абсолютно правы. Можно ещё убрать проблему при смене типа колонки с VARCHAR на BLOB.



                    0



                    912 / 877 / 62

                    Регистрация: 06.01.2010

                    Сообщений: 2,367

                    Записей в блоге: 6

                    01.07.2011, 07:27

                    4

                    Это контр-решение (антипаттерн).
                    Было бы интересно увидеть какой командой была произведена смена типа столбца, т.к. согласитесь — имя колонки в ней нужно было указать, а «Column unknown» не проскочило.



                    0



                    4 / 4 / 0

                    Регистрация: 23.08.2010

                    Сообщений: 103

                    01.07.2011, 13:11

                     [ТС]

                    5

                    Цитата
                    Сообщение от arni
                    Посмотреть сообщение

                    Это контр-решение (антипаттерн).
                    Было бы интересно увидеть какой командой была произведена смена типа столбца, т.к. согласитесь — имя колонки в ней нужно было указать, а «Column unknown» не проскочило.

                    А VARCHAR нельзя преобразовать в BLOB у существующего столбца. Получается:

                    Unsuccessful metadata update.
                    Cannot change datatype for column P. Changing datatype is not supported for BLOB or ARRAY columns.

                    Я просто создал новую таблицу: всё то же, только тип вместо VARCHAR BLOB.



                    0



                    I updated today. jan 23.

                    It refuses to open the database at all in version 4.

                    In version 3, when I got the message on startup no database was displayed.
                    I would then exit out and start the program from quick start icon in the tray.

                    Again I got the same message but this time my database was open.

                    I could add to it but could not export it. It does save any changes on exit though.

                    Now I cannot access the current database.

                    here are the two messages.

                    WHEN I FIRST START THE PROGRAM:

                    There was an error during the execution of this program.
                    The application might become unstable and even useless.
                    It’s recommended that you save your work and close this application.

                    Dynamic SQL Error
                    SQL error code = -206
                    Column unknown
                    OLD.USEGLOBALFOLDERS

                    Exception log with detailed tech info. Generated on 01/23/2011 1:53 PM.
                    You may send it to the application vendor, helping him to understand what had happened.
                    Application title: EssentialPIM
                    Application file: C:Program Files (x86)EssentialPIMEssentialPIM.exe
                    Application: EssentialPIM 4.01
                    ——————————————————————————
                    Exception class: EIBInterBaseError
                    Exception message: Dynamic SQL Error
                    SQL error code = -206
                    Column unknown
                    OLD.USEGLOBALFOLDERS
                    At line 5, column 10.
                    Exception address: 004CEEB3
                    ——————————————————————————
                    Main thread ID = 2756
                    Exception thread ID = 2756
                    ——————————————————————————
                    Active Controls:
                    1927376 ExceptionDialog TextMemo

                    ——————————————————————————
                    Exception stack
                    Stack list, generated 01/23/2011 1:53 PM
                    [004CEEAE]{EssentialPIM.exe} IB.IBDataBaseError (Line 411, «IB.pas» + 38)
                    ——————————————————————————
                    Call stack for main thread
                    Stack list, generated 01/23/2011 1:53 PM
                    (0004945E){ntdll.dll } [7795A45E]
                    ——————————————————————————
                    System : Windows Vista Home Edition, Version: 6.0, Build: 1772, «Service Pack 2»
                    Memory: 4095; free 4095
                    Display : 1024×768 pixels, 32 bpp
                    ——————————————————————————

                    NOW AFTER I EXIT AND TRY TO START WITH THE QUICK START ICONIN THE TRAY

                    There was an error during the execution of this program.
                    The application might become unstable and even useless.
                    It’s recommended that you save your work and close this application.

                    unsuccessful metadata update
                    STORE RDB$RELATION_FIELDS failed
                    attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_15».

                    Exception log with detailed tech info. Generated on 01/23/2011 1:54 PM.
                    You may send it to the application vendor, helping him to understand what had happened.
                    Application title: EssentialPIM
                    Application file: C:Program Files (x86)EssentialPIMEssentialPIM.exe
                    Application: EssentialPIM 4.01
                    ——————————————————————————
                    Exception class: EIBInterBaseError
                    Exception message: unsuccessful metadata update
                    STORE RDB$RELATION_FIELDS failed
                    attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_15».
                    Exception address: 004CEEB3
                    ——————————————————————————
                    Main thread ID = 2756
                    Exception thread ID = 2756
                    ——————————————————————————
                    Active Controls:
                    1977843 ExceptionDialog TextMemo
                    1964083 MainForm
                    1954957 ExceptionDialog DetailsMemo
                    1945831 ExceptionDialog TextMemo
                    1936705 ExceptionDialog DetailsBtn
                    1927407 ExceptionDialog OkBtn
                    1927376 ExceptionDialog TextMemo

                    ——————————————————————————
                    Exception stack
                    Stack list, generated 01/23/2011 1:54 PM
                    [004CEEAE]{EssentialPIM.exe} IB.IBDataBaseError (Line 411, «IB.pas» + 38)
                    ——————————————————————————
                    Call stack for main thread
                    Stack list, generated 01/23/2011 1:54 PM
                    (0004945E){ntdll.dll } [7795A45E]
                    ——————————————————————————
                    System : Windows Vista Home Edition, Version: 6.0, Build: 1772, «Service Pack 2»
                    Memory: 4095; free 4095
                    Display : 1024×768 pixels, 32 bpp
                    ——————————————————————————
                    PrevExceptions:
                    1963522 Dynamic SQL Error
                    SQL error code = -206
                    Column unknown
                    OLD.USEGLOBALFOLDERS
                    At line 5, column 10

                    Thanks for any help you can give

                    Понравилась статья? Поделить с друзьями:

                    Читайте также:

                  • Dyn damping control ошибка бмв х5 е70
                  • Dying light системная ошибка msvcp110 dll
                  • Dying light ошибка при запуске приложения 0xc0000906
                  • Dune 2000 как изменить разрешение экрана
                  • Dying light ошибка записи на диск

                  • 0 0 голоса
                    Рейтинг статьи
                    Подписаться
                    Уведомить о
                    guest

                    0 комментариев
                    Старые
                    Новые Популярные
                    Межтекстовые Отзывы
                    Посмотреть все комментарии