Вставить запись Coldfusion в базу данных Oracle - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь вставить записи из Coldfusion в Oracle DB 11 (g), но в журнале ошибок отображается ORA-00911: недопустимый символ. Я могу выбрать записи из базы данных Oracle, но не могу вставить.

Ниже приведены мои коды.

<cfquery name="qOracleData" datasource="Oracle_Test">
    Insert into postindept (deptid, propos_position, descr, sm_descr60, grade) values ('1','110000  ', '110000  ','510000 ' ,'10');
    COMMIT;
</cfquery>

1 Ответ

8 голосов
/ 24 октября 2019

Oracle поддерживает только один оператор на запрос. Удалите COMMIT; (который вам не нужен, так как транзакция должна автоматически фиксироваться) и завершающую точку с запятой из оператора вставки.

Кроме того, если вы вставляете числовые значения, вы не должны передаватьих как строки:

<cfquery name="qOracleData" datasource="Oracle_Test">
    Insert into postindept (
      deptid, propos_position, descr, sm_descr60, grade
    ) values (
      1,      110000,          110000, 510000,    10
    )
</cfquery>

и вы можете использовать параметры связывания :

<cfquery name="qOracleData" datasource="Oracle_Test">
    Insert into postindept (
      deptid,
      propos_position,
      descr,
      sm_descr60,
      grade
    ) values (
      <cfqueryparam value = "1"      cfsqltype = "CF_SQL_NUMERIC" />,
      <cfqueryparam value = "110000" cfsqltype = "CF_SQL_NUMERIC" />,
      <cfqueryparam value = "110000" cfsqltype = "CF_SQL_NUMERIC" />,
      <cfqueryparam value = "510000" cfsqltype = "CF_SQL_NUMERIC" />,
      <cfqueryparam value = "10"     cfsqltype = "CF_SQL_NUMERIC" />
    )
</cfquery>
...