sql >> Database teknologi >  >> RDS >> Oracle

Returner sys_refcursor for oraklet til c#

Er der en grund til, at du ikke bruger en funktion i stedet for procedure?

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;

Så i C# skal du ændre det til dette:

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

Når du kører da.Fill(ds); derefter udføres funktionen, dvs. ved hjælp af cmd.ExecuteNonQuery(); udfører funktionen to gange.

I hvert fald, for en procedure bør den rigtige måde være denne:

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


  1. Sagsudsagn med where condition i SQL

  2. Forbind online mysql-database med den lokale xampp-server ved hjælp af php

  3. Almindelige MySql-interviewspørgsmål og svar for friskere og erfarne

  4. Sortering efter streng, der starter med Number - ActiveRecord