0

動作しているplsqloracleストアドプロシージャがあります(plsqlでテストしたところ、正しい値が返されます)。

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

エンティティフレームワークを使用したビジュアルスタジオソリューション。

csdlファイルには

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

上記の関数をエンティティに取り込むことに成功しましたが、[列情報の取得]ボタンを試すと、[選択したストアドプロシージャは列を返しません]というメッセージが表示されます。メッセージ。

編集関数のインポートの下で、私はそれを見ることができます:

スカラーのコレクションを返します:10進数

データ型は「数値」に設定され、方向は「出力」です。

このようなspがplsqlでは機能するがVisualStudioでは機能しない理由を誰かが説明できますか?

4

2 に答える 2

1

試す

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

OUT or IN OUT通常、Oracleの関数は、変数を介して出力にアクセスするプロシージャとは異なり、値を返すことができます。

于 2012-07-20T01:28:38.963 に答える
0

次を試してください

  CREATE OR REPLACE PROCEDURE FetchCode
  (
     results_ OUT SYS_REFCURSOR
  ) IS
  BEGIN
      OPEN results_ FOR 
      SELECT MYSEQ.NEXTVAL As Code FROM DUAL;    
  END FetchCode;
于 2012-07-20T01:43:09.943 に答える