ORACLE: недопустимая спецификация user.table.column, table.column или столбца без явной ошибки - PullRequest
0 голосов
/ 16 декабря 2011

Я использую

<CFQUERY DataSource="#XXX.DSN#">
    UPDATE FUNKUS_LIST
    SET 
    <CFIF OPERATIONRECEIVED IS "Enable">
        FUNKUS_STATUS_ID=<CFQUERYPARAM value="1"
        CFSQLTYPE="CF_SQL_INTEGER">
    <CFELSEIF OPERATIONRECEIVED IS "Revoke">
        FUNKUS_STATUS_ID=<CFQUERYPARAM value="3"
        CFSQLTYPE="CF_SQL_INTEGER">
    </CFIF>
    WHERE
        FUNKUS_LIST_ID in (
        <CFQUERYPARAM   value="#form.dltCheckbox#"
        CFSQLTYPE="CF_SQL_INTEGER"
            LIST="Yes">
            )
</CFQUERY>

в Coldfusion MX7 с базой данных Oracle 9i.Что может быть причиной:

Ошибка выполнения запроса к базе данных.ORA-01747: неверная спецификация user.table.column, table.column или столбца

form.dltCheckbox должна быть группой флажков в форме.

FUNKUS_LIST_ID - это целочисленный столбец, и числа, указанные вручную, являются правильными и действительными идентификаторами.OPERATIONRECEIVED - это строка, представляющая, что должно быть сделано в этой форме действия.Я подтвердил, что все имена столбцов и таблиц совпадают

1 Ответ

3 голосов
/ 16 декабря 2011

Вам необходимо добавить атрибут list = "true" в ваш cfqueryparam:

WHERE
        FUNKUS_LIST_ID in (
        <CFQUERYPARAM   value="#form.dltCheckbox#" LIST="TRUE"
        CFSQLTYPE="CF_SQL_INTEGER"> )

... также добавить закрывающую скобку

редактировать

В ответ на ваш комментарий - вы убедились, что OPERATIONRECEIVED определенно либо «включен», либо «отозван»? Если это что-то отличное от этого, ваш SQL будет неполным, поскольку в предложении set не будет перечисленных столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...