PLSQL Básico - Cursores Explicitos (Explicit Cursors)

  Рет қаралды 45,742

Daniel Nieto

Daniel Nieto

Күн бұрын

Explicación de los cursors explicitos. Un cursor explicito guarda el resultado de la ejecucion de un select, el registro o los registros serán accesados para poder trabajar sobre ellos, yo recomiendo el uso del FOR LOOP ya que este automaticamente nos crea el registro y no necesitamos abrir ni cerrar el cursor. Otra forma de hacerlo es por medio del FETCH.

Пікірлер: 65
@ricardosanpietro8698
@ricardosanpietro8698 9 жыл бұрын
Muy claro y bien explicado. Gracias por compartir tu tiempo con los que no sabemos.
@domicb1709
@domicb1709 6 жыл бұрын
Gracias, me sirvió durante mis estudios y ahora en el trabajo, de nuevo muchas gracias por compartir tu conocimiento
@DiegoGamer-id2le
@DiegoGamer-id2le 11 жыл бұрын
Muchas gracias Daniel, me sirvio de mucho tu respuesta. Yo lo habia hecho haciendo una tabla temporal, en la cual le ingrese los valores de la columna DN_ID y luego hice con un NOT IN la comparación para que me diera como resultado los valores que no estan en la columna DN_ID de la directoy_number. pero me pidieron hacerlo sin una tabla temporal y tu respuesta esta excelente. Se te agradece un monton tu ayuda. Saludos amigo.
@jesusbaez100
@jesusbaez100 9 жыл бұрын
Exelente forma de explicar los cursores y el for.
@user-ok2rb4vj3p
@user-ok2rb4vj3p 2 жыл бұрын
Me encantó la explicación, muchas gracias
@sebaleal3081
@sebaleal3081 4 жыл бұрын
Explicas de maravilla, muchas gracias!
@niru619niru
@niru619niru 5 жыл бұрын
Gracias por el video muy claro y me sirvió mucho apenas empiezo en PL SQL
@juandavidroseroacevedo1198
@juandavidroseroacevedo1198 3 жыл бұрын
Re genial el video amigo, recomendado
@jj1650
@jj1650 8 жыл бұрын
buen vídeo todo muy bien explicado.
@noe7714
@noe7714 6 жыл бұрын
Excelente video, recién comienzo con PL/SQL! Un saludo!
@DiegoGamer-id2le
@DiegoGamer-id2le 11 жыл бұрын
Ok excelente me quedo muy claro ahora, gracias amigo por la explicación. Saludos y muchos exitos. Bendiciones.
@DanielNietoEscobar
@DanielNietoEscobar 11 жыл бұрын
Perdon Yamil por la tardanza, mira en el video "Oracle PLSQL Basico Parte 1 - DML (insert, select, update, delete) en la parte de descripcion viene el link para las tablas, tambien hay otro video para que puedas hacer tus practicas online. cualquier duda quedo al pendiente. gracias
@009betta
@009betta 12 жыл бұрын
Excelente, nada más que decir, Saludos de Chile
@borjamayoraltattoo
@borjamayoraltattoo 11 жыл бұрын
gracias macho!! gracias ati alomejor apruebo mañana xD ni mi profesor lo explica como tu muy buen aporte!!
@Edanro
@Edanro 9 жыл бұрын
EXCELENTE EXPLICACIÓN. ME AYUDASTE MUCHO. GRACIAS :)
@sinfonico1984
@sinfonico1984 8 жыл бұрын
Don Daniel, primero que todo quisiera felicitarlo por su magnifico trabajo, muy bien explicado... además, se nota que hay una preocupación por entregar un producto de calidad. _Quisiera preguntarle si en sus próximos vídeos explicará "Triggers", seria magnifico poder tener uno de ellos ya que la mayoría, o tienen problemas de audio o simplemente el ingles Indú es complicado captarlo (sin ofender... claro).
@diegoquintero3610
@diegoquintero3610 5 жыл бұрын
Sin palabras bro, excelente video!
@jonathanhoyos8191
@jonathanhoyos8191 9 жыл бұрын
Muy buen tutorial!!! Excelente, recomendado
@pabloraulcarranzavigo
@pabloraulcarranzavigo 12 жыл бұрын
MUY BUENO LOS TUTORIALES:::::::SALUDOS DESDE PERU .,.,
@tecelotlslre
@tecelotlslre 12 жыл бұрын
Muy bien exlicado :), saludos desde Xonacatique
@DanielNietoEscobar
@DanielNietoEscobar 11 жыл бұрын
a si claro que si m,, mira si te fijas tenemos un ciclo, saque primero el numero maximo que tenemos de ids ,, despues el ciclo va de 1 hasta ese numero,, dentro de ese ciclo metemos un begin para que controle cuando no encuentre dato, recordando que V_COUNT es el que iria contando de 1 hasta el maxico ,, entraria a ese query ,, supongamos que V_COUNT = 5 pero cuando hace la comparacion DN_ID = 5 no existe entonces se iria a excepciones e imprimiria ese numero. Me dices si no queda claro
@sabrinasandi4064
@sabrinasandi4064 2 жыл бұрын
Como hago para dirigirme a un registro especifico del cursor, por ejemplo solo quiere imprimir el registro #2?
@ju2717
@ju2717 11 жыл бұрын
Excelente tus videos muchas gracias por compartir ;)
@DanielNietoEscobar
@DanielNietoEscobar 11 жыл бұрын
solamente 10 registros, para limitar usamos un filtro adicional en tu cursor que seria AND rownum
@DiegoGamer-id2le
@DiegoGamer-id2le 11 жыл бұрын
de antemano muchas gracias. Muy buenos videos
@Kazuhiro-i
@Kazuhiro-i 5 жыл бұрын
Muy buen video gracias ahora entiendo mucho mejor los cursores y sus maravillosas posibilidades, aunque ya sea para bien o mal, el nivel de dificultad en mi instituto es mucho mayor y al final igual me destruyen xD
@matitohye1622
@matitohye1622 Жыл бұрын
excelente muchas gracias
@franciscoperez9462
@franciscoperez9462 12 жыл бұрын
Muy bien Explicado, Gracias!
@JorgeGonzalez-jl9xr
@JorgeGonzalez-jl9xr 8 жыл бұрын
Hola Daniel. Gracias por el video tutorial. Yo estoy usando Postgresql. Este lenguale PL/SQL es un lenguaje standard por lo que me imagino que me servirá para usarlo dentro del postgresql. Sigues activo aclarando las dudas? Gracias
@Yuki_Nagato
@Yuki_Nagato 5 жыл бұрын
excelente , me has salvado
@keylacusi8526
@keylacusi8526 8 жыл бұрын
Todo tiene más sentido D: Gracias!!
@DanielNietoEscobar
@DanielNietoEscobar 11 жыл бұрын
Que tal Maximo, espero entiendas mi logica, usè una forma simple create or replace procedure my_procedure as -- v_count number; v_max number; v_num number := 0; begin select max(dn_id) into v_max from directory_number; -- for v_count in 1..v_max loop begin select dn_id into v_num from directory_number where dn_id = v_count; exception when no_data_found then dbms_output.put_line(v_count); end; end loop; end my_procedure;
@iscervant
@iscervant 10 жыл бұрын
Video Super Bueno!
@brunoalexissantillansantil4637
@brunoalexissantillansantil4637 9 жыл бұрын
me salio amigo copie el for para el update pero borre la impresion de ese for copiado ,para q solo imprimiera ya actualizado ,gracias m ayudas bastante , mi admiracion y respeto .
@jkrlos1991
@jkrlos1991 11 жыл бұрын
gracias... buen tuto
@DiegoGamer-id2le
@DiegoGamer-id2le 11 жыл бұрын
Hola Daniel, queria saber si me ayudabas con este problema, Suponiendo la tabla Directory_number cuya llave primaria es la columna DN_ID. Necesito que implementes un procedimiento PL/SQL que imprima los valores de DN_IDs faltantes en dicha tabla. Los valores encontrados deberan ser impresos a traves del comando dbms_output.put_line(). ej.supongamos que en la tabla existiera 2 lineas. Una linea con valor id 1 en la siguiente tiene 3. En este caso la linea 2 no existe, entonces tiene q imprimir 2
@DanielNietoEscobar
@DanielNietoEscobar 11 жыл бұрын
Que tal Lu cy , si estas usando Oracle SQL developer para programar, el mensaje "bloque anonimo terminado" aparece en una ventana, pero la salida al dbms la activas en otra , para verla te vas al menu "ver" luego click donde dice "Salida DBMS" ahi aparecerà una pantalla, tiene un signo de +, lo activas para permitir la salida, haz una prueba con un codigo como: begin dbms_output.put_line('salida'); end; Si eso ya està entocnes quizà el query del cursor no regresa, correlo con tu dato, saludos
@lucy216245
@lucy216245 11 жыл бұрын
hola buenas noches ,una consulta yo hice el ejercicio del cursor mandandole un parametro.pero no me muestra los resultados sino me dice bloque anonimo terminado.
@jesusalfonsonovaroarrospid5345
@jesusalfonsonovaroarrospid5345 9 жыл бұрын
Excelente video :)
@edgarbermeo1132
@edgarbermeo1132 7 жыл бұрын
fue de mucha ayuda bro
@jcravelo
@jcravelo 6 жыл бұрын
Muy buena explicacion
@fabianrr
@fabianrr 5 жыл бұрын
Podrias hacer un remake de los videos, pero usando el esquema hr.
@queusuariolargo
@queusuariolargo 11 жыл бұрын
Hola, muy bueno el video! Una consulta, yo tengo que hacer algo muy parecido, pero en el for interno tengo que mostrar 10 registros de cada una. No todo. Como puedo hacer eso? Quiero mostrar de una tabla de id de localidades, de cada localidad solo 10 clientes: BEGIN FOR R_LOCALIDADES IN C_LOCALIDADES LOOP FOR R_GEOGRA IN C_GEOGRA (R_LOCALIDADES.CONTRATO) LOOP DBMS_OUTPUT.PUT_LINE(R_GEOGRA.GEOGRAP_LOCATION_ID||'*'|| R_GEOGRA.DESCRIPTION); END LOOP; END LOOP; END;
@eliceoreyes1950
@eliceoreyes1950 11 жыл бұрын
Excelente Video,,
@u2lover10
@u2lover10 6 жыл бұрын
Hola Daniel! muy bueno el video! queria consultarte si el "FOR UPDATE nowait" lo que hace es dar prioridad a ese proceso frente a otros que se estan ejecutando al mismo tiempo. por otro lado queria consultarte si esta misma sentencia sirve para los store procedure de SQL Server. Gracias!
@DanielNietoEscobar
@DanielNietoEscobar 6 жыл бұрын
Hola Cecilia, el "FOR UPDATE nowait" no da prioridad al proceso como tal, primeramete valida que el rango de registros que se esta consultando no tenga bloqueos y en caso de que asi sea termina el proceso en error. Esto porque cuando no es usado si alguna de las filas esta bloqueada por algun proceso o usuario los programas pueden quedar como ejecutandose cuando en realidad estan esperando que se se libere el recurso. Se puede agregar un rango de tiemop al final que se maneja en segundos (FOR UPDATE nowait 15). Si el recurso esta disponible si reserva los datos para ser actualizados. en SQL server pude ver algo como BEGIN TRAN SELECT ID, Col1 FROM First WITH(NOWAIT) WHERE ID = 1
@ELNIKO16MARI
@ELNIKO16MARI 9 жыл бұрын
Como puedo cerrar un cursor explicito por medio de un if ??
@brunoalexissantillansantil4637
@brunoalexissantillansantil4637 9 жыл бұрын
ojala subas videos d plsql avanzado o ya lo isistes informame porfavor gracias
@ruthrios6537
@ruthrios6537 Жыл бұрын
Que editor usas para hacer las pruebas?
@DanielNietoEscobar
@DanielNietoEscobar Жыл бұрын
Hola Ruth, Oracle da oportunidad de tener un espacio de trabajo gratis.. solo registrarte apex.oracle.com/en/learn/getting-started/ saludos
@lucy216245
@lucy216245 11 жыл бұрын
muchas gracias me sirvio :)
@DiegoGamer-id2le
@DiegoGamer-id2le 11 жыл бұрын
Solo me gustaria que me dieras una breve explicación de esta parte, siento que me perdi aca. BEGIN SELECT DN_ID INTO V_NUM FROM DIRECTORY_NUMBER WHERE DN_ID = V_COUNT De antemano muchas gracias. Saludos cordiales.
@josealbertoclavijozambrana3831
@josealbertoclavijozambrana3831 9 жыл бұрын
para que te sirver for en base de datos eso no lo entendi muy bien
@DanielNietoEscobar
@DanielNietoEscobar 9 жыл бұрын
José Alberto Clavijo Zambrana es la manera como recorres el cursor. Entre alguna otra aplicacion que podria tener.
@irethmar6148
@irethmar6148 5 жыл бұрын
Muy bueno, tenés algun tutorial con Fetch?? justo eso me piden :(
@DanielNietoEscobar
@DanielNietoEscobar 5 жыл бұрын
Hola Ireth, de FETCH no puse,, tienes el ejemplo de lo que te piden? igual con eso podemos validar.. Fetch al final del query para regresar cierta cantidad de columnas o FETCH para cuando tenemos un query dinamico y queremos ir a traves de las lineas del cursor. Saludos.
@Chemaclass
@Chemaclass 12 жыл бұрын
Gracias :D
@felisadiaz6189
@felisadiaz6189 7 жыл бұрын
HOLA NO ENTENDÍ POR QUE NO ES RECOMENDABLE USAR EN FETCH Y COMO SE USARÍA? SALUDOS
@DanielNietoEscobar
@DanielNietoEscobar 7 жыл бұрын
Hola Felisa, no es recomendable porque lo de agregar la instruccion del fetch tienes que abrir y cerrar el cursor en momentos especificos. Esto ya lo hace automaticamente el FOR-LOOP/. La cuestion es porque deberias usar FETCH? saludos, DN
@felisadiaz6189
@felisadiaz6189 7 жыл бұрын
Es que apenas comienzo en esto de PL/SQL y me confundo aun. ¿Que es exactamente el FECTH?
@mariorogelio
@mariorogelio 9 жыл бұрын
7:07 Como enviar un parámetro a un cursor.
@DanielNietoEscobar
@DanielNietoEscobar 9 жыл бұрын
Mario Rogelio Solamente lo declaras ejemplo cursor c_1(p1 varchar2) is select ... y cuando lo usas le mandas el parametro necesario.
@mariorogelio
@mariorogelio 9 жыл бұрын
Daniel Nieto Muchas gracias Daniel, no era pregunta, solo era para marcar que allí empieza la explicación. Pero muchas gracias, ahora sé que aún contesta.
@yamildelgado6555
@yamildelgado6555 11 жыл бұрын
Hola buen dia Daniel nieto esta interesante tu video me gustaria hacer los ejercicios ,podrias proporcionarme la el script de las tablas que necesito por favor .. yamildelgado@hotmail.com
@Henry78119
@Henry78119 10 жыл бұрын
Excelente Video!!!
PLSQL Básico - Cursores Implícitos (Implicit Cursors)
14:44
Daniel Nieto
Рет қаралды 12 М.
PLSQL básico - Ciclos (LOOPS)
17:29
Daniel Nieto
Рет қаралды 22 М.
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 5 МЛН
POV: Your kids ask to play the claw machine
00:20
Hungry FAM
Рет қаралды 17 МЛН
PLSQL Básico - Procedimientos (stored procedures)
14:03
Daniel Nieto
Рет қаралды 40 М.
Funciones y procedimientos en Oracle PL/SQL
32:43
Carlos Jiménez Rodríguez
Рет қаралды 89 М.
1.- Introducción PLSQL
44:28
Pedro Camacho
Рет қаралды 153 М.
Explicando cursor explícito simple
21:29
Jazna_LaProfe
Рет қаралды 301
4.- Triggers PLSQL
21:51
Pedro Camacho
Рет қаралды 36 М.
PLSQL Bloques anonimos y declarados (Named vs Anonymous Blocks)
14:44
Base de datos #13 | Normalización (1FN, 2FN y 3FN)
13:45
CodigoCompilado
Рет қаралды 1 МЛН
PLSQL Básico - Paquetes (Packages)
10:13
Daniel Nieto
Рет қаралды 28 М.
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 5 МЛН