CLR: .Net / Mono / Boo / Otros CLR > ASP .NET
Problemas Con Una Funcion De Oracle Desde .net
(1/1)
colacao:
Buenas,
Estoy desarrollando una aplicación que trabaja con Oracle. Mi problema es el siguiente:
Tengo una función de oracle que retorna un tipo de dato compuesto.
El problema es que no se como debo hacer para obtener el resultado de la consulta.
A continuación os muestro el tipo de dato creado en oracle y la funcion de oracle con la que trabajo. Tanto la función como el tipo de dato me los han enviado y tengo que trabajar con esos en concreto.
--- Código: Text --- create or replace type tAlumnos as object(codigo varchar2(10),codsolicitud number,campo1 varchar2(200),campo2 varchar2(200),campo3 varchar2(200),campo4 varchar2(200),campo5 varchar2(200),dni varchar2(20),nombre varchar2(50),apellido1 varchar2(50),apellido2 varchar2(50),sexo varchar2(1),fechanacimiento date,domicilio varchar2(255),numero varchar2(4),piso varchar2(6),poblacion varchar2(50),cp varchar2(6),pais varchar2(255),telefono varchar2(15),movil varchar2(15),email varchar2(255),provincia varchar2(100),resultado varchar2(1))
--- Código: Text --- create or replace function datos_alumno (cod_solicitud number) return talumnos isNecesita:Un número de solicitudProduce:Una estructura de datos con todos los campos requeridos. En esta estructuraexistiráun campo denominado resultado, que vale T si existe la solicitud y F en casodehaber algún error o no existir la solicitud.datos talumnos;cursor dat(cod number) issELECT codigo,codsolicitud,campo1,campo2,campo3,campo4,campo5,dni,nombre,apellido1,apellido2,sexo,fechanacimiento,domicilio,numero,piso,poblacion,cp,pais,telefono,movil,email,provinciaFROM JMCLIENTEWHEREcodsolicitud=cod;beginFOR REGIs IN dat(cod_solicitud) loopdatos:=talumnos(regis.codigo,regis.codsolicitud,regis.campo1,regis.campo2,regis.campo3,regis.campo4,regis.campo5,regis.dni,regis.nombre,regis.apellido1,regis.apellido2,regis.sexo,regis.fechanacimiento,regis.domicilio,regis.numero,regis.piso,regis.poblacion,regis.cp,regis.pais,regis.telefono,regis.movil,regis.email,regis.provincia,'T');return(datos);end loop;datos:=talumnos('',0,'','','','','','','','','','','',null,'','','','','','','','','','F');return (datos);exceptionwhen OTHERS THENdatos:=talumnos('',0,'','','','','','','','','','','',null,'','','','','','','','','','F');return (datos);end datos_alumno;
Desde .net el código que tengo es el siguiente:
--- Código: Text --- //Creamos un objeto command para ejecutar el procedure del packageOracleCommand oracmd = new OracleCommand(); //Consulta que ejecuta la función de Oracle oracmd.CommandText = "select datos_alumnos(1) from dual"; //Definimos que el tipo de comando a ejecutar es una consulta. oracmd.CommandType = CommandType.Text; //Y asignamos la conexión que previamente hemos definido y abierto. oracmd.Connection = conexion.obtenerConexionOracleClient();
Y a partir de aquí ya no se como seguir para obtener el objeto que me retorna la función.
Si alguien puede echarme una mano se lo agradecería mucho.
Un saludo,
Jorge
Navegación
Ir a la versión completa