sql >> データベース >  >> RDS >> Oracle

オラクルのsys_refcursorをc#に返します

    プロシージャの代わりに関数を使用しない理由はありますか?

    CREATE OR REPLACE FUNCTION ListadoClientes() RETURN sys_refcursor
    IS 
    resul Sys_refcursor;
    BEGIN 
      OPEN resul for select ID ,NOMBRES ,APELLIDOS ,CEDULA ,DIRECCION ,TELEFONO  
      from cliente; 
      RETURN resul;
    END ListadoClientes;
    

    次に、C#では次のように変更する必要があります:

    cmd.Parameters.Add("resul", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
    

    da.Fill(ds);を実行すると 次に、関数が実行されます。つまり、cmd.ExecuteNonQuery();を使用します。 関数を2回実行します。

    とにかく、手順の正しい方法は次のとおりです。

    cmd.CommandText = "ListadoClientes(:resul)";
    


    1. isqlによるSQLの実行方法の変更

    2. 特定の行を返すためのSQL自己結合

    3. ページごとに使用されたMySQLクエリの総数をカウントするにはどうすればよいですか?

    4. SQL Server2008DBのPostgresへの移行