tag:blogger.com,1999:blog-6468086379886856315.post7567955666663488009..comments2023-06-12T04:30:48.170-04:00Comments on Consejos del Gurú: Crear un Cursor SQL ServerMichael Núñezhttp://www.blogger.com/profile/09013666267551935297noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-6468086379886856315.post-86692192115272995292014-11-15T18:36:52.531-04:002014-11-15T18:36:52.531-04:00es muy interesante quisiera aprender mas sobre ese...es muy interesante quisiera aprender mas sobre ese tema de cursores...podría poner mas ejemplosAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-16884263802888687952014-08-21T11:56:50.485-04:002014-08-21T11:56:50.485-04:00ayuda por favor!!!!!!!!!
=)
Crear un Stored proc...ayuda por favor!!!!!!!!!<br />=)<br /><br /><br />Crear un Stored procedure que <br />utilizando un curso realice lo siguiente<br />Obtener la fecha de nacimiento y calcular <br />la edad y actualizar el campo EDAD.<br /><br />CREATE TABLE ALUMNOS (<br />ID_ALUMNO NUMBER(3),<br />NOMBRE VARCHAR2(100),<br />APELLIDO_PATERNO VARCHAR2(100),<br />APELLIDO_MATERNO VARCHAR2(100),<br />FECHA_NAC DATE,<br />FECHA_GRAD DATE,<br />MES_NAC VARCHAR2(20)<br />DIA_GRAD VARCHAR2(20)<br />EDAD NUMBER(2);Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-50431022569357366902014-06-09T17:41:21.375-04:002014-06-09T17:41:21.375-04:00ok, ya lo hice asi:
select convert(datetime, fec_c...ok, ya lo hice asi:<br />select convert(datetime, fec_che) as fecha from t_checador <br />solo que marca el sig error:<br />The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.<br /><br />y eso es solo en el select, yo lo quiero insertar en una tabla donde el tipo de dato es smalldatetime.<br /><br />gracias...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-6615525856462423372014-05-28T14:55:33.869-04:002014-05-28T14:55:33.869-04:00puedes usar Convert(datetime, campo) o cast(campo ...puedes usar Convert(datetime, campo) o cast(campo as datetime)Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-30579331225679517342014-05-27T21:34:33.903-04:002014-05-27T21:34:33.903-04:00hola, una pregunta:
tengo el valor 09-23-13 13:00...hola, una pregunta:<br /><br />tengo el valor 09-23-13 13:00:10 en char que es fecha y hora, como lo puedo convertir a smalldatetime?<br /><br />GRACIAS...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-81591506048147812282013-10-31T10:18:16.356-04:002013-10-31T10:18:16.356-04:00Muchas gracias por el aporte!!!Muchas gracias por el aporte!!!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-62405317702042084222013-09-09T18:51:21.552-04:002013-09-09T18:51:21.552-04:00Hola, gracias por tu publicacion esta bien explica...Hola, gracias por tu publicacion esta bien explicada (como con bolitas y palitos...) soy ISC y en la universidad no vimos nada de cursores ni siquiera sabia que existian jaja, pero ahora debo utilizarlos porque se aplican mucho en mi actual trabajo.<br />Que bueno que haya personas que comparten sus conocimientos y ayudan a los demas, eres un ejemplo a seguir, al menos para mi :)<br />Saludos desde Puebla, Mexico.<br /><br />alexa.avf@gmail.com<br />@Alexa_avfAlejandra Vallejo Fdez.noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-86468722333960454242013-09-06T15:24:52.312-04:002013-09-06T15:24:52.312-04:00Bueno, otro ignorante mas...si existe el cursor es...Bueno, otro ignorante mas...si existe el cursor es por alguna razón o lo inventaron en vano. Te recomiendo que fomentes la lectura y luego hablamos.<br /><br />Saludos, en buena onda.Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-74398953810275303602013-09-06T11:08:15.955-04:002013-09-06T11:08:15.955-04:00DOS CURSORESS ????
...mmm... lo mejor seria queee....DOS CURSORESS ????<br />...mmm... lo mejor seria queee...<br />en vez de 2 cursores, Hazte 4 CURSORES.<br /><br />ASI TE DAN EL SOBRE AZUL Y QUEDAS LISTO!!, CON BILLETES $$$, EN EL BOLSILLO. <br /><br />Luego buscas trabajo en otra empresa y pides el aumento que tanto quieres.<br /><br />Resumen : Trabajo Nuevo y Plata para que te des los gustos.<br /><br />...y todo por querer buscar la forma de complicar las cosas, cuando la respuesta es mas sencilla.<br /><br />Saludos.<br />todo en muy buena onda!!.<br /><br /><br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-11536707193017309872013-07-16T23:28:50.170-04:002013-07-16T23:28:50.170-04:00Hola, excelente página, estoy haciendo un trabajo ...Hola, excelente página, estoy haciendo un trabajo para la U y no puedo ver cual es el problema de este proceso:<br /><br />alter proc SP1<br />as<br /><br />declare MiCursor cursor for -- declaro el cursor para<br />select id, valor, texto from Datos<br />order by id --ordena la tabla<br /><br />declare @id Int <br />declare @valor int<br />declare @texto varchar <br /><br />open MiCursor --abrimos el cursor<br /><br />create table #paso (palabra varchar(100), cantidad int)<br /><br />fetch next from MiCursor <br />into @id,@valor,@texto <br /><br /><br />if @@fetch_status <> 0 <br /> print ' No hay registros ' ;<br />while @@fetch_status = 0<br /> begin<br /><br />insert #paso<br /><br />exec SeparaPalabras @texto <br /><br />insert palabra<br />select @id,@valor, palabra, cantidad from #paso<br />where rtrim(palabra) is not null<br /><br />Select * from #Paso<br /><br />delete #paso <br /><br />Fetch next from MiCursor<br /><br />into @id ,@valor,@texto <br /><br />end <br /><br />close MiCursor<br />deallocate MiCursor<br /><br />drop table #paso<br /><br /><br />Al ejecutarlpo me sale el siguiente error <br /><br />Msg 16915, Level 16, State 1, Procedure SP1, Line 5<br />A cursor with the name 'MiCursor' already exists.<br />Msg 16905, Level 16, State 1, Procedure SP1, Line 12<br />The cursor is already open.<br /><br />Gracias, AlejandraAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-64307117348482562352013-04-15T12:59:20.768-04:002013-04-15T12:59:20.768-04:00En el ejemplo le falta la @ al apellido, de esa fo...<b>En el ejemplo le falta la @ al apellido, de esa forma quedaria:<br />fetch next from cursor_prueba<br />into @nombres, @apellidos</b>Xavinoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-26359197120180424172013-03-01T16:02:34.046-04:002013-03-01T16:02:34.046-04:00Si, los cursores trabajan dentro de un función, ti...Si, los cursores trabajan dentro de un función, tienes que tener algo mal en tu cursor para que no realice lo que esperas.Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-2397838081161696162013-03-01T15:25:49.937-04:002013-03-01T15:25:49.937-04:00hola amigo una pregunta... se puede usar un cursor...hola amigo una pregunta... se puede usar un cursor dentro de una funcion? ya que he creado una funcion con n cursor dentro y todo esta normal hasta antes del "while @@fetch_status = 0" a partir de alli no lee nada de lo q esta dentro del while.. porq? :(<br /><br /><br />EJEMPLO:<br /><br /><br />CREATE FUNCTION verCruceCursos(@curso1 as char(2),@curso2 as char(2))<br />RETURNS varchar(15)<br />as<br />BEGIN<br /> <br /> declare @respuesta varchar(15)<br /> set @respuesta = 'No Existe Cruce'<br /><br /> declare curCurso1 cursor for select dia,horainicio,duracion from horarios where curso=@curso1<br /><br /> declare @dia1 char(10)<br /> declare @inicio1 int,@duracion1 int<br /><br /> open curCurso1<br /> fetch next from curCurso1 into @dia1,@inicio1,@duracion1<br /> while @@fetch_status = 0 --> A PARTIR DE AKI NO LEE NADA<br /> begin<br /> -- inicio cursor 1<br /> <br /> declare curCurso2 cursor for<br /> select dia,horainicio,duracion from horarios where curso=@curso2<br /> .. etcRenzonoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-44432582803696193992013-02-26T12:17:49.358-04:002013-02-26T12:17:49.358-04:00Bueno, una opción es utilizar un loop con un while...Bueno, una opción es utilizar un loop con un while.Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-54697897462170786952013-02-26T11:04:30.764-04:002013-02-26T11:04:30.764-04:00disculpen mi absoluta ignorancia soy nuevo trabaja...disculpen mi absoluta ignorancia soy nuevo trabajando directamente con el gestor de bases de datos, pero sino uso el cursor cual es la herramienta alternativa, es decir, sino uso el cursor que puedo usar en su lugar?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-81665390810042299082012-09-10T19:47:07.743-04:002012-09-10T19:47:07.743-04:00Extraodinario, muy claro me sirvio mucho para recu...Extraodinario, muy claro me sirvio mucho para recuperar datos historicos.jonny70https://www.blogger.com/profile/08453967107221277027noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-79251984321345678262012-08-08T17:34:41.001-04:002012-08-08T17:34:41.001-04:00Gracias por compartir este código para realizar un...Gracias por compartir este código para realizar unos reportes, que ya me dolía la cabeza porque no daba con el código que estaba implementando. De verdad mil gracias por personas que comparten sus conocimientos.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-26669469812870426502012-08-02T04:22:39.042-04:002012-08-02T04:22:39.042-04:00Estimado.
Excelente explicacion. Muy agradecido po...Estimado.<br />Excelente explicacion. Muy agradecido por todo.<br />Te animo a que sigas adelante con el blog.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-29252298222811450532012-06-19T17:27:39.978-04:002012-06-19T17:27:39.978-04:00Solo tienes que utilizar la sentencia print. Ojo, ...Solo tienes que utilizar la sentencia <b>print</b>. Ojo, esta sentencia solo funciona con texto, por lo que tendrías que convertir a texto un valor numérico, fecha, etc.Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-40985320736950875442012-06-19T15:38:09.916-04:002012-06-19T15:38:09.916-04:00buenas tardes, mi pregunta es como imprimo una sen...buenas tardes, mi pregunta es como imprimo una sentencia sql q tengo en un cursorAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-20823004716918702822012-05-21T02:23:26.273-04:002012-05-21T02:23:26.273-04:00muchas gracias, esta muy bien explicado me sirvio ...muchas gracias, esta muy bien explicado me sirvio para un trabajo escolar de la uni, felicitaciones!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-33882365086018884222012-04-23T13:10:56.914-04:002012-04-23T13:10:56.914-04:00muchas gracias creo entender cual fue mi error per...muchas gracias creo entender cual fue mi error pero a la final lo logre con tablas temporalesAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-39114336605732108222012-03-25T17:18:17.472-04:002012-03-25T17:18:17.472-04:00El problema es la declaración, tienes que cambiarl...El problema es la declaración, tienes que cambiarla a esta forma<br /><br />DECLARE @Id_Codigo numeric(2,0)<br /><br />DECLARE CursorImpuesto CURSOR FOR SELECT cod_impuesto FROM tmp_rpte_prov_impuesto<br /><br />OPEN CursorImpuesto<br /><br />puedes probar de esa forma.Michael Núñezhttps://www.blogger.com/profile/09013666267551935297noreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-40543766964274696142012-03-22T13:47:54.899-04:002012-03-22T13:47:54.899-04:00Un cordial saludo me pueden explicar por que me sa...Un cordial saludo me pueden explicar por que me sale este error<br /><br />DECLARE CURSOR must be the only statement in a query batch.<br /><br />Estoy creando un cursor dentro de un sp el cual va a recorrer los impuestos de mi proveedor e imprimira los impuestos q el posee<br /><br />DECLARE CursorImpuesto CURSOR FOR SELECT cod_impuesto FROM tmp_rpte_prov_impuesto<br />DECLARE @Id_Codigo numeric(2,0)<br /><br />OPEN CursorImpuesto<br />FETCH NEXT FROM CursorImpuesto INTO @Id_Codigo<br />WHILE @@fetch_status = 0<br />BEGIN<br />PRINT @Id_Codigo<br />FETCH NEXT FROM CursorImpuesto INTO @Id_Codigo<br />END<br />CLOSE CursorImpuesto<br />DEALLOCATE CursorImpuesto<br /><br />Se los agradezcoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6468086379886856315.post-70896322658072870442012-03-21T18:00:27.653-04:002012-03-21T18:00:27.653-04:00Muy bien explicado y en mi poca experiencia un cur...Muy bien explicado y en mi poca experiencia un cursor seria la ultima salida pero suele ser el salvavidas en cuestion de dar resultados.Anonymousnoreply@blogger.com