首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

EF 调用 oracle 存储过程失败,有人晓得为什么吗

2013-12-15 
EF 调用 oracle 存储过程失败,有人知道为什么吗?如果存储过程没有返回游标,就能成功吗,如果返回游标,就是

EF 调用 oracle 存储过程失败,有人知道为什么吗?
如果存储过程没有返回游标,就能成功吗,如果返回游标,就是失败,有人知道为什么吗?谢谢

  public ObjectResult<T_ID> USP_TEST(global::System.String mTABLE)
        {
            ObjectParameter mTABLEParameter;
            if (mTABLE != null)
            {
                mTABLEParameter = new ObjectParameter("MTABLE", mTABLE);
            }
            else
            {
                mTABLEParameter = new ObjectParameter("MTABLE", typeof(global::System.String));
            }
            return base.ExecuteFunction<T_ID>("USP_TEST", mTABLEParameter);
        } 


存储过程 也很简单
create or replace procedure USP_TEST(mTable in varchar2,cur_out Out sys_refcursor
) is 
begin
    open cur_out for select * from t_id;
end USP_TEST;
[解决办法]
我做出来了,你要在WEB.CONFIG里面进行配置,与SQL SERVER有很大的区别,只要是返回游标的都必须配置
例子:
 <oracle.dataaccess.client>
    <settings>
      <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursor.NEW_SALARY" value="implicitRefCursor bindinfo='mode=Output'" />
      <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.0" value="implicitRefCursor metadata='ColumnName=FIRST_NAME;BaseColumnName=FIRST_NAME;BaseSchemaName=HR;BaseTableName=EMPLOYEES;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
      <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.1" value="implicitRefCursor metadata='ColumnName=SALARY;NATIVEDATATYPE=Number;ProviderType=Int32'" />
    </settings>
  </oracle.dataaccess.client>

其他的照着配置,但类型一定要对应正确,不然就要报错,很麻烦
[解决办法]
http://download.oracle.com/oll/obe/EntityFrameworkOBE/EntityFrameworkOBE.htm

上面的這個例子更詳細

热点排行