【问题标题】:The selected stored procedure or function returns no columns when using Oracle SP使用 Oracle SP 时,选定的存储过程或函数不返回任何列
【发布时间】:2018-07-11 10:04:51
【问题描述】:

Visual Studio 2013,实体框架 5: 为输出类型为 SYS_REFCURSOR 的 Oracle 存储过程执行“添加函数导入”。在“返回一个集合”中——选择复杂,然后点击“获取列信息”——我不断得到:

“选定的存储过程或函数不返回任何列”。

我知道配置文件(在这种情况下为 app.config)应该包含存储过程的条目。我生成了它:

<oracle.manageddataaccess.client>
    <version number="*">
      <implicitRefCursor>
        <storedProcedure schema="<Scheme name>" name="<SP Name>">
          <refCursor name="<ref cursor name>">
           <bindInfo mode="Output" />
          </refCursor>
        </storedProcedure>
      </implicitRefCursor>
    </version>
  </oracle.manageddataaccess.client>

我在这里缺少什么? (阅读了很多帖子——没有一个有帮助)。 设置条目中 DBName 的值应该是什么?数据库本身的名称?配置文件中连接字符串条目的名称?创建的实体框架的名称?

【问题讨论】:

    标签: oracle entity-framework


    【解决方案1】:

    我发现了问题所在: 1. 在服务器资源管理器中,运行该过程。 2. 有一个屏幕可让您签署选项以在配置文件中包含所需的配置(见下文)。为了让实体框架生成模型 - 它应该知道字段。为了实现这一点,需要勾选“select for config”选项,然后点击“add config” 这是相关的屏幕: https://i.stack.imgur.com/FFoTv.jpg

    【讨论】:

      【解决方案2】:

      我不知道 Visual Studio。但是,在您询问的 DBName 中:在 Oracle 中,连接字符串看起来像 connect username/password@database,其中 database 表示其在 TNSNAMES.ORA 文件中的 alias。如果你没有它,你仍然可以连接。看看这个例子,说不定你会看到一些熟悉的东西并且能够使用它。

      我删除了机密数据,因为老大哥正在观看 :),以及一些不相关的内容。

      我应该知道数据库名称 (db11g),以便我可以 ping 它并找出主机、端口和 SID:

      M:\>tnsping db11g
      
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=db_11g) (PORT=1521)) (CONNECT_DATA= (SID=db11g)))
      OK (50 msec)
      

      好的,现在 ping 主机找到它的 IP 地址:

      M:\>ping db_11g
      
      Pinging db_11g [xxx.xxx.xxx.xxx] with 32 bytes of data:
      Reply from xxx.xxx.xxx.xxx: bytes=32 time=4ms TTL=59
      

      最后,连接:

      M:\>sqlplus scott/tiger@xxx.xxx.xxx.xxx:1521/db11g
                              --------------- 
                              IP address      ----
                                              Port -----
                                                   SID
      
      Connected to:
      Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
      
      SQL>
      

      希望你能成功。如果没有,抱歉,我无法为您提供更好的帮助。

      【讨论】:

        猜你喜欢
        • 2016-11-28
        • 2016-02-11
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        • 2014-05-28
        • 1970-01-01
        • 1970-01-01
        • 2014-05-14
        相关资源
        最近更新 更多