Muy buen curso, gracias. También tuve error al ejecutar la parte del EXEC, uso PL/SQL. Mejor lo hice en otro bloque con un loop. 💪
@informaticonfig33311 ай бұрын
excelente!
@load_code3 жыл бұрын
Gracias por compartir tu conocimiento. Me salvaste el trabajo de la U. Saludo desde Bogotá - Colombia.
@informaticonfig3333 жыл бұрын
de nada parcero
@xavierflores82522 жыл бұрын
he terminado de entender la utilidad de estos cursores, y realmente sirven para dar info a las aplicaciones o modificar los datos de manera puntual y rápida.
@informaticonfig3333 жыл бұрын
Gracias por tu visita y participar en este curso, si te gusta por favor subscribete, dame tu like y comparte para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho. COLABORACION: paypal.me/informaticonfig
@arbidag7 ай бұрын
Muchísimas gracias por el curso!!
@jam18m Жыл бұрын
select * from empleados; serveroutput on; create or replace function f_datoemepleados( v_documento in number ) return sys_refcursor is v_ref sys_refcursor; begin open v_ref for select * from empleados where documento = v_documento; return v_ref; end;
@gabrielvargas91333 жыл бұрын
saludos y gracias!
@informaticonfig3333 жыл бұрын
Gracias a ti
@alexander-ardila2 ай бұрын
Corsial saludo, En el refcursor no es necesario el close?
@informaticonfig3332 ай бұрын
no es estrictamente necesario cerrar el cursor en ciertos contextos, pero depende del uso y del entorno donde se está manejando, en este caso al ser un ejercicio sencillo, no hay problemas.
@juanmanuelcontrerasvega61263 жыл бұрын
estoy usando apex online en la seccion para sql pero tal parece que no soporta la sintaxis
@informaticonfig3333 жыл бұрын
esto es un SQL Oracle 11g, puedes buscar en la página de Oracle las compatibilidades de la aplicación Apex con la versión, asi sales de dudas.
@gabrielvargas91333 жыл бұрын
buenas, disculpa estoy estudiando Ingeniería informática y no he podido desarrollar un requerimiento, me podrías ayudar con su desarrollo?
@informaticonfig3333 жыл бұрын
Hola Gabriel si tienes alguna duda compleja me puedes escribir al mail informaticonfig@gmail.com
@farteaga713 жыл бұрын
Buenas tardes, creara video sobre paquetes?
@informaticonfig3333 жыл бұрын
por supuesto, estoy algo lento con la subida de mas lecciones por el trabajo, pero el curso completo va
@farteaga713 жыл бұрын
@@informaticonfig333 gracias, muy buen curso
@maroxd66407 ай бұрын
vaya videaso chaval, explica mejor que mi profesor, hahaha pero que es una pseudo tabla de invocacion ?
@informaticonfig3337 ай бұрын
hola Daga, una pseudo tabla de invocación es una tabla especial que no existe físicamente en la base de datos, pero que puede ser usada por ejemplo en un trigger . Estas pseudo tablas permiten acceder a los datos antes y después de que se produzca un cambio en la tabla real a la que están asociadas.
@maroxd66407 ай бұрын
ahhhh okey gracias. y no sabes como puedo llamar a una funcion que retorna valores desde c#?
@gabrielisabella63163 жыл бұрын
se puede usar un refcursor para que devuelva la invocacion a modo de un select normal?
@informaticonfig3333 жыл бұрын
detallame mejor la duda Gabriel
@gabrielisabella63163 жыл бұрын
@@informaticonfig333 que en vez de salida casi txt sea como tipo tabla
@informaticonfig3333 жыл бұрын
@@gabrielisabella6316 hola Gabriel perdona la tardía respuesta: para esto puede acomodar el resultao de la consulta con el dbms_output.put_line, concatenando los valores para que se acomoden y se visualicen como una tabla.
@irenebellverserrano15674 ай бұрын
Ya ha pasado tiempo desde la consulta pero por si a alguien le es de utilidad, sí, se puede utilizar como un cursor normal. Te pongo un ejemplo de un bloque que utiliza un refcursor de una función 1 DECLARE 2 cursor SYS_REFCURSOR; 3 v VARCHAR2(20); 4 BEGIN 5 cursor := f_datoemp(222222); -- Get ref cursor from function 6 LOOP 7 FETCH cursor into v; 8 EXIT WHEN c%NOTFOUND; 9 dbms_output.put_line('Value from cursor: '||v); 10 END LOOP; 11 END;
@juanmanuelcontrerasvega61263 жыл бұрын
ORA-00932: tipos de dato inconsistentes: se esperaba CHAR se ha obtenido CURSOR estoy teniendo este error al tratar de ejecutar mi funcion con parametros, tengo la funcion de igual forma que le tutorial.
@informaticonfig3333 жыл бұрын
Hola Juan, por favor si puedes, utiliza un SQLdeveloper para la prueba y confirma si te da el mismo error. Gracias.
@aeperezto2 жыл бұрын
En la cláusula where, sustituye lo que él indica por WHERE documento = TO_CHAR(v_documento);
@arbidag7 ай бұрын
@@aeperezto Lo he probado y tampoco funciona. Pero gracias. Saludos.
@arbidag7 ай бұрын
Me pasa lo mismo, pero he modificado un poco el código para que funcione: --------------------------- -- 0. Activamos la salida de mensajes por pantalla: set serveroutput on; --------------------------- -- 1. Creamos la función con entrada de parámetro: create or replace function fun_datosempleado(p_documento in empleados.documento%type) return varchar2 is -- - Declaramos una var. para almacenar los datos del refcursor: v_ref sys_refcursor; -- - Declaramos las var. para almacenar datos de la fila de la tabla: v_documento empleados.documento%type; v_apellido empleados.apellido%type; v_nombre empleados.nombre%type; v_domicilio empleados.domicilio%type; v_seccion empleados.seccion%type; v_sueldo empleados.sueldo%type; -- - Declaramos una var. para almacenar los datos de la fila que nos interesa: v_resultado VARCHAR2(500); begin -- - Abrimos cursor e iniciamos la var. v_ref guardando dentro la info del output de un cursor: open v_ref for select * from empleados where documento = p_documento; -- - Volcamos los datos encontrados por el cursor en las var. declaradas: fetch v_ref into v_documento, v_apellido, v_nombre, v_domicilio, v_seccion, v_sueldo; -- - Metemos los datos en v_resultado: v_resultado := 'DOCUMENTO: ' || v_documento || ', APELLIDO: ' || v_apellido || ', NOMBRE: ' || v_nombre || ', DIRECCIÓN: ' || v_domicilio || ', SECCIÓN: '|| v_seccion || ', SUELDO: ' || v_sueldo; -- - Cerramos el cursor: close v_ref; -- - Retornamos la var.: return v_resultado; end fun_datosempleado; --------------------------- -- 2. Usamos la función sacando el resultado por pantalla: execute dbms_output.put_line(fun_datosempleado(22222222));