0

我有一个工作PLSQL Oracle存储过程(我已在PLSQL测试,它返回正确的值(一个或多个)):PLSQL存储过程在实体没有返回值框架

PROCEDURE FetchCode(code OUT NUMBER) IS 
    BEGIN 
     SELECT MYSEQ.NEXTVAL INTO code FROM DUAL;  
    END FetchCode; 

和Visual Studio解决方案使用实体框架。

的CSDL文件包含

 <FunctionImport Name="FETCHCODE" ReturnType="Collection(Decimal)"> 
     <Parameter Name="CODE" Mode="Out" Type="Decimal" /> 
     </FunctionImport> 

我已经在拉动上述功能实体是成功的,但是当我尝试“获取列信息”按钮,我收到“所选的存储过程返回没有列“。信息。

在编辑功能导入我可以看到它:

返回 标量的集合:十进制

的数据类型设置为“数字”和方向是“输出”。

任何人都可以帮助解释为什么像这样的sp可以在plsql上工作,但不能在visual studio中工作?

回答

0

尝试

CREATE or REPLACE FUNCTION FetchCode IS 
RETURN NUMBER 
DECLARE 
    code NUMBER(10); 
    BEGIN 
     SELECT MYSEQ.NEXTVAL INTO code FROM DUAL;  
     RETURN code; 
    END FetchCode; 

一般Oracle中官能团能够与将输出经由OUT or IN OUT变量访问过程返回的值。

0

尝试使用以下

CREATE OR REPLACE PROCEDURE FetchCode 
    (
    results_ OUT SYS_REFCURSOR 
) IS 
    BEGIN 
     OPEN results_ FOR 
     SELECT MYSEQ.NEXTVAL As Code FROM DUAL;  
    END FetchCode; 
+0

我试图该溶液中CSDL文件改变为以下: <参数名称=” P_RECORDSET“Mode =”Out“Type =”Binary“/> 我试图获取列信息,并在执行时完全退出”编辑函数导入“窗口。不幸的是,它仍然没有在edmx/vs方面返回任何东西。 – 2012-07-22 16:49:09