1

これが私が実行しているクエリです。

<cfquery name="myquery" datasource="mydatasource">
    INSERT INTO 
        myTable (myfield) 
    VALUES 
        (<cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myValue#" />)
    RETURNING
        id INTO <cfqueryparam cfsqltype="cf_sql_varchar" value="#LOCAL.myid#" />    
</cfquery>

私が得ているエラーはORA-00439: feature not enabled: RETURNING clause from this client type

GENERATEDKEYと呼ばれる cfquery の機能に出くわしました。これを使用して、アクセスできないデータベースサーバー設定を軽減できると思います。ただし、GENERATEDKEY を取得して主キーを返すことができないようです。代わりに、Oracle の行 ID である AAFO9cAAEAAB8vYAAH のようなものを取得します...

4

2 に答える 2

0

私はコールドフュージョンに詳しくありませんが、簡単な解決策があるかもしれません。
しかし、そうでない場合は、回避策として、 を使用してそれを返すストアド プロシージャを作成することができますreturning clause
このようにして、代わりにストアド プロシージャを呼び出すことができます。

create or replace function insert_my_table(my_value varchar2) return number is
   i number;
begin
   insert into my_table (value_col_name) values (my_value) returning id into i;
   return i;
end insert_my_table;
于 2012-05-16T14:36:40.540 に答える