sql >> Databasteknik >  >> RDS >> Oracle

Returnera sys_refcursor för oraklet till c#

Finns det en anledning till att du inte använder en funktion istället för procedur?

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;

Sedan i C# måste du ändra det till detta:

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

När du kör da.Fill(ds); sedan exekveras funktionen, dvs med cmd.ExecuteNonQuery(); kör funktionen två gånger.

Hur som helst, för en procedur bör det rätta sättet vara detta:

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


  1. Hur man gör detta i Laravel, underfråga var i

  2. Eliminera dubbletter av värden baserat på endast en kolumn i tabellen

  3. golang sql-drivrutinens förbereda uttalande

  4. Att SHA512-hasha ett lösenord i MySQL-databas av Python