Ahora muestro el formulario que se utilizara para pedir al usuario el código de empleado que se buscara, en este mismo formulario se presentaran los resultados de la búsqueda, especifico solo dos campos porque el tercero(cargo) es mas de lo mismo
utilizaremos un procedimiento almacenado para la búsqueda
create or replace
package pabletoreto
as
type t_cursor is ref cursor;
procedure ObtenerCampos(p_ID IN
BLOGTABLE.ID%TYPE, cursorObtener out t_cursor);
end pabletoreto;
create or replace
package body pabletoreto
as
PROCEDURE
ObtenerCampos(p_ID IN BLOGTABLE.ID%TYPE, cursorObtener out t_cursor)
IS
BEGIN
OPEN cursorObtener FOR
SELECT ID,NOMBRE,CARGO FROM BLOGTABLE
WHERE ID = p_ID;
end ObtenerCampos;
end pabletoreto;
y el código del evento Click del botn Buscar en C#
using (OracleConnection OraConn = Conectar()){
OracleCommand OraCmd = new OracleCommand();
OraCmd.Connection = OraConn;
OraCmd.CommandText = "pabletoreto.ObtenerCampos";
OraCmd.CommandType = CommandType.StoredProcedure;
OraCmd.Parameters.Add("p_ID", OracleDbType.Varchar2).Value =
txtID.Text;
OraCmd.Parameters.Add(new OracleParameter("cursorObtener", OracleDbType.RefCursor)).Direction = ParameterDirection.Output;
OracleDataReader dr = OraCmd.ExecuteReader();
if (dr.HasRows){
txtID.Text = Convert.ToString(dr["ID"]);
txtNombre.Text = Convert.ToString(dr["NOMBRE"]);
}}}
Pero si en lugar de utilizar procedimiento almacenado utilizaramos una función que devuelve un Refcursor tendriamos, en primer lugar, que crear la funcion
Pero si en lugar de utilizar procedimiento almacenado utilizaramos una función que devuelve un Refcursor tendriamos, en primer lugar, que crear la funcion