Tag: sql



8 Apr 10

En pl sql existen los famosos packages(paquetes) los cuales no son mas que un grupo de funciones y SP (stored procedures) que nos ayudan a encapsular funcionalidad, lo curioso de en los paquetes es que se definen un body(cuerpo) y una spec(especificacion)  en java seria como si la spec fuera una interface y el cuerpo la implementacion de esta jeje, en el spec puede definir las constantes, los tipos de datos(types) , colecciones, cursores, funciones etc..pero en fin a continuacion un ejemplo de un paquete con 2 funciones:

SPEC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
CREATE OR REPLACE PACKAGE nombre_paquete AS

--definicion de la funcion 1 recibe de paremetro un number y regresa un varchar
FUNCTION funcion1(id number) RETURN varchar;

--definicion de la funcion 2 recibe de parametro un varchar y regresa un number
FUNCTION funcion2(name varchar) RETURN number;



END nombre_paquete;

BODY

CREATE OR REPLACE PACKAGE BODY nombre_paquete AS

FUNCTION funcion1(id number)  RETURN varchar IS
v_nombre varchar; --la variable a regresar

begin --empieza el bloque
--se hace un into variable para asignarle el valor encontrado
SELECT e.nombre INTO v_nombre FROM empleados e WHERE e.id = id;

RETURN v_nombre; --y un return
end; --termina el bloque

FUNCTION funcion2(name varchar) RETURN number IS
v_id number;
begin
SELECT e.id INTO v_id FROM empleados e WHERE e.name LIKE name;
RETURN v_id;
end;

END nombre_paquete; --finaliza el paquete

Espero que le sirva a alguien :P

saludos


Filed under: programacion

Trackback Uri






24 Jan 10

Propiedades de las Transacciones

  • Atomicidad: Todas las operaciones en una transacción tienen éxito o ninguno de ellos lo son. El éxito de cada operación individual está ligado al éxito de todo el grupo.
  • Coherencia: El estado resultante al final de la transacción se adhiere a un conjunto de reglas que definen la aceptabilidad de los datos. Los datos en todo el sistema es legal o válido con respecto al resto de los datos en el sistema.
  • Aislamiento: Los cambios realizados en una transacción son visibles sólo a la transacción que está haciendo los cambios. Una vez que una transacción se confirma los cambios que se atómicamente visible para otras transacciones.
  • Durabilidad: Los cambios realizados en una transacción perduren más allá de la finalización de la transacción.

  • Filed under: computadora,estudiar,godieboy

    Trackback Uri






    4 Jul 09

    Parece ser que el movimiento para eliminar SQL y las BD relacionales ha empezado, NoSQL es un movimiento que cada vez esta ganando mas gente, y al parecer con muy buenas bases, los sistemas NoSql son distribuidos, almacenan datos no relacionales que suelen utilizar un simple valor-clave para la indexación y recuperación de datos y lo mejor de todo: utilizan una simple llamada a una API en lugar de tener que aprender un lenguaje declarativo como SQL.

    Otra de las grande ventajas es su velocidad para la gestion de los datos, Facebook y google lo han demostrado manejando billones de datos en sus aplicaciones, dando un asombroso rendimiento, el problema ahora sería que las empresas empezaran a utilizaras en sus aplicaciones, lo cual creo que supondra rechazos y desaprobaciones, al menos hasta que las estadisticas demuestren los contrario. .. continue reading ..


    Filed under: godieboy

    Trackback Uri






    25 Jul 08

    Me duele la cabeza estoy tomando un pequeño descanso 12hrs de programacion casi continua no es un chiste, pensar en como hacerle y luego hacerlo pero mientras no sabes como hacerle piensas y piensas hasta que encuentras una forma de hacerlo y eso lo que me paso..

    Programar en php no es muy complicado ^^ lo malo que estoy manejando horas y fechas y esta bien castrocito aparte de relaciones de muchos a muchos @_@ te alocas con esa onda pero ai la llevo ya hize una agenda ^^ de las reservaciones por cabina namas me falta por empleado y servicios y la agenda estara lista… pero haber si le gusta al cliente.

    Si no le gusta y si no le entiende voi a valer pero trato de hacerlo lo mas sencillo posible =) lo dificil es condicionar eso lleno de if y selects ya me tienen con dolor de cabeza….

    Utilizando el framework cakePHP
    Lo mejor de esto es que he estado a prendiendo a manejar fechas y horas con sql y tambien en php ademas de usar funciones de arreglos bueno creo que ya es tarde mejor me voi a dormir para despejar o despegar (ummm lo buscare en google) mi mente y estar mas agusto y sin dolor de cabeza.

    vaya hasta que escribo un post desente en mi blog, na al principio escribi lo de mi bistek y el pastel de galletas marias jeje, bueno despues de eso esto….

    ay se vieron

    umm era despejar le atine pero dude ni modo jojoj


    Filed under: godieboy,programacion

    Trackback Uri






    23 Jul 08

    Batallando un poco con mysql las consultas son algo complicadas weno las que tengo que hacer pero ai la llevo miren aqui les dejo una que saca un empleado que no ha sido registrado en las reservaciones en tal fecha y hora y en sus horas de trabajo claro que si no esta trabajando poes no se debe de mostrar a demas de tener un servicio que realizar y si el lo realiza se muestra siempre y cuando no este ocupado en esa hora jejeje miren D:

    SELECT DISTINCT E. id, E.name
    FROM empleados AS E, roles_servicios AS RS, reservaciones as r,servicios as S
    WHERE E.rol_id = RS.role_id
    AND RS.servicio_id = S.id
    AND RS.servicio_id = 9
    AND r.fecha = DATE(“2008-07-22″)
    AND r.hora between SUBTIME(TIME(“13:46″),TIME(“0:50″)) AND ADDTIME(TIME(“13:46″),TIME(“0:50″))
    AND E.sucursal_id= 2
    AND (TIME(“13:46″) Between E.horaEntrada And E.horaSalida)
    AND E.id NOT IN (
    SELECT DISTINCT E. id
    FROM empleados AS E, roles_servicios AS RS, reservaciones as r,servicios as S
    WHERE E.rol_id = RS .role_id
    AND RS.servicio_id = S.id
    AND RS.servicio_id=9
    AND r.fecha = DATE(“2008-07-22″)
    AND r.hora between SUBTIME(TIME(“0:46″),TIME(“8:50″)) AND ADDTIME(TIME(“22:46″),TIME(“0:50″))
    AND E.sucursal_id= 2
    AND (TIME(“13:46″) Between E.horaEntrada And E.horaSalida)
    AND E.id IN (
    SELECT ER.empleado_id
    FROM empleados_reservaciones as ER
    WHERE r.id=ER.reservacione_id
    )
    )

    waaa
    tablas
    reservaciones tienen muchos empleados
    empleados tiene un rol y muchas reservaciones
    roles tiene muchos empleados
    empleados reservaciones intermedia para hacer el muchos a muchos entre empleados y reservaciones jejej

    pero ia me salio ahora namas falta agregarle la duracion del servicio y que no se intercepte con otro que ya esta reservado y sera genial ^^


    Filed under: godieboy,programacion

    Trackback Uri