Buscar este blog

lunes, 19 de noviembre de 2018

select count (*) as contador,EXTRACT(MONTH FROM CREATION_TIME) as mes,
 EXTRACT(YEAR FROM CREATION_TIME) as anio
FROM TABLA p WHERE CAMPO=1 AND BORRADO=0
GROUP BY EXTRACT(YEAR FROM CREATION_TIME),EXTRACT(MONTH FROM CREATION_TIME) ORDER BY anio,mes ASC;


Devolver el contador de campo a buscar agrupados por año

Grant sobre rol de base datos

GRANT SELECT, insert, update, delete ON ESQUEMA.XXX to R_ROL_LE;

Cambiar valor de la secuencia al mayor ID de la base de datos

declare
  v_sql varchar2(500);
begin
  EXECUTE IMMEDIATE 'drop sequence "ESQUEMA"."HIBERNATE_SEQUENCE"';
  SELECT 'CREATE SEQUENCE "ESQUEMA"."HIBERNATE_SEQUENCE" MINVALUE 1 START WITH '||  
    (SELECT MAX(ID1)+1 FROM (
      SELECT MAX(ID) "ID1" FROM  XXXY
       UNION
      SELECT MAX(ID) FROM  XXX)
  )    
  ||' INCREMENT BY 1 CACHE 20'
  INTO v_sql
  FROM dual;

  EXECUTE IMMEDIATE v_sql;

  dbms_output.put_line(v_sql);
end;

jueves, 1 de noviembre de 2018

Crear tablespace de datos e indices

CREATE TABLESPACE DATOS_xxx datafile 'xxx_datafile.dbf' size 20M AUTOEXTEND ON;

CREATE TABLESPACE IDEX_xxx datafile 'xxx_index_datafile.dbf' size 20M AUTOEXTEND ON;

martes, 5 de julio de 2016

Crear tabla con dblink en otra db - PHP


Suponemos que en este punto estamos conectados a la base de datos A.

1) Abrir conexión a DB donde queremos crear la tabla.

$conexion = new ConnPostgres($conn->host, $conn->port, $conn->data_base, $conn->user, $conn->password);

2) Crear la SQL donde creamos una tabla a partir de una select sobre otra tabla.

$sql = 'create table '.$nombreTabla.' as select q.NOMBRECAMPO/OS from dblink('.'\'dbname=NOMBREDB user=USER password=PASSWORD'.'\', '.'\'select NOMBRECAMPO/OS
from TABLA where
xxxxx='.$xxxxx.'\')as q (NOMBRECAMPO/OS, NOMBRECAMPO character varying(25))';

3)Lanzar query.

$conexion->query($sql);

martes, 17 de mayo de 2016

NVL PL/SQL de Oracle

La función NVL forma parte del lenguaje PL/SQL de Oracle.
NVL( Expresión1, Expresión2 )
 Si Expresión1 es null, se devolverá valor de Expresión2, util para operaciones.

 Por ejemplo:
1SHOW NVL( NULL, 'Es nulo' )
2Es nulo         

Envio de email. javax.mail

    public static void enviarCorreo(List emailsDestinatarios,String pAsunto,String pMensaje) {
           try {
                   if (emailsDestinatarios.size()>0){
                   log.info("Creando el correo a enviar...");
                   InternetAddress from = new InternetAddress(mailConfig.getProperty(MAIL_SENDER));
                   from.setPersonal(mailConfig.getProperty(MAIL_ALIAS), "iso-8859-1");

                  
                   MimeMessage message = new MimeMessage(session);  
                   message.setFrom(from);   
                   message.addRecipients(Message.RecipientType.BCC, emailsDestinatarios.toArray(new InternetAddress[emailsDestinatarios.size()]));
                   message.setSubject(pAsunto);  
                   message.setSentDate(new Date());
                  
                   MimeBodyPart cuerpoEmail = new MimeBodyPart();
                   cuerpoEmail.setText(pMensaje, "us-ascii");
                   cuerpoEmail.setHeader("Content-Type", "text/html");
                   MimeMultipart contenido = new MimeMultipart();
                   contenido.addBodyPart(cuerpoEmail);
                   message.setContent(contenido);
                  
                   log.info("Correo a enviar creado.");
                   log.info("Enviando el correo...");
                   Transport.send(message);
                   log.info("Correo enviado.");
                }else
                    log.info("No hay destinatarios válidos.");             
           } catch (MessagingException me) {
               log.error("Se ha producido un error en el envío del correo.", me);
           } catch (UnsupportedEncodingException ue) {
               log.error("Se ha producido un error con el encoding del correo.", ue);
           }catch (Exception mex) {
                mex.printStackTrace();
                log.error("No se pudo enviar el correo." + mex.getMessage());
           }
       }