miércoles, 27 de febrero de 2013

Eliminar todas las tablas de una base de datos Oracle

Creditos y gracias a szaman en http://stackoverflow.com/questions/1690404/how-to-drop-all-user-tables.


BEGIN
   FOR cur_rec IN (SELECT object_name, object_type
                     FROM user_objects
                    WHERE object_type IN
                             ('TABLE',
                              'VIEW',
                              'PACKAGE',
                              'PROCEDURE',
                              'FUNCTION',
                              'SEQUENCE'
                             ))
   LOOP
      BEGIN
         IF cur_rec.object_type = 'TABLE'
         THEN
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '" CASCADE CONSTRAINTS';
         ELSE
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '"';
         END IF;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'FAILED: DROP '
                                  || cur_rec.object_type
                                  || ' "'
                                  || cur_rec.object_name
                                  || '"'
                                 );
      END;
   END LOOP;
END;
/

lunes, 25 de febrero de 2013

Configurar pagina maestra de tiles con struts 1.x para css y javascripts

Bueno algunas veces necesitamos agregar javascript o hojas de estilo que no sean propios de la página maestra sino de los hijos, pues bien lo podemos hacer de la siguiente forma.

En tiles-defs.xml

       <definition name="master" path="/jsp/templates/principal.jsp">
  <put name="title" value="Sistema" />
  <put name="body" value="/recursos/html/contenido.html" />
  <putList name="cssList" />
  <putList name="jsFilesList" />
     </definition>


Y ahora en el principal.jsp


  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

   <tiles:useAttribute id="cssList" name="cssFilesList" classname="java.util.List" />
        <c:forEach var="cssFileName" items="${cssList}">
              <link type='text/css' rel="stylesheet" href="<%=request.getContextPath()%><c:out value='${cssFileName}' />" />
        </c:forEach>
   
   <tiles:useAttribute id="jsList" name="jsFilesList" classname="java.util.List" />
        <c:forEach var="jsFileName" items="${jsList}">
              <script type="text/javascript" src="<%=request.getContextPath()%><c:out value='${jsFileName}' />"></script>
        </c:forEach>

Ya por último los hijos que extiendan de master en su respectivo xml sobreescriben.

<definition name="childPage" path="/child.jsp" extends="master">
        <putList name="cssList">
            <add value="/css/hoja1.css"/>
            <add value="/css/hoja2.css"/>
        </putList>
   <putList name="jsList">
            <add value="/js/Script1.js"/>
            <add value="/js/Script2.js"/>
        </putList>
    </definition>

lunes, 18 de febrero de 2013

Cambiar puertos de oracle xpress edition en windows



 Muchas veces cuando desarrollas en java el xpress edition ocupa el puerto 8080 el cual ocupa jboss o glassfish, entonces si utilizas varios servidores es mas facil cambiar el puerto de oracle que el de los servidores.

Todo esto es por línea de comandos en Windows.

C:\WINDOWS\system32>sqlplus system@xe

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Express Edition Release

SQL> -- ver qaue estatus tienen
SQL> select dbms_xdb.gethttpport as "HTTP-Port"
            , dbms_xdb.getftpport as "FTP-Port" from dual;

HTTP-Port   FTP-Port
---------- ----------
     8080          0


SQL> -- estable el puerto http y ftp

SQL> begin

 2    dbms_xdb.sethttpport('9999');

 3    dbms_xdb.setftpport('2100');

 4  end;

 5  /



PL/SQL procedure successfully completed.



SQL> select dbms_xdb.gethttpport as "HTTP-Port"

            , dbms_xdb.getftpport as "FTP-Port" from dual;



HTTP-Port   FTP-Port

---------- ----------

       80       2100


SQL> -- Deshabilitar el accesos

SQL> begin

 2    dbms_xdb.sethttpport('0');

 3    dbms_xdb.setftpport('0');

 4  end;

 5  /

lunes, 11 de febrero de 2013

OR dinamico en Hibernate

Esta funcion es util cuando se tiene una serie de valores que se pueden ir agregando dinamicamente en Hibernate, por ultimo lo agregamos al criteria.


Disjunction disjunction=Restrictions.disjunction();
            for(Objeto objeto:lista){
                disjunction.add(Restrictions.eq("campo",objeto.getId()));   
            }
criteria.add(disjunction);

Seleccion de registros distintos en Criteria hibernate DISTINCT

Pues bien a veces necesitamos registros distintos.

Tenemos dos formas la primera es seteandole a la proyeccion un distinct, lo malo de hacerlo de esta forma es que solo trae el registro seteado en la proyeccion.

ProjectionList projectionList = Projections.projectionList();
  projectionList.add(Projections.distinct(Projections.property("rfc")));

criteria.setProjection(projectionList);

Y la segunda es mediante el resultTransformer el cual trae la clase persistida en forma completa
equivalente a un distinct de todo *

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);


domingo, 10 de febrero de 2013

Base de datos en javascript

Tengo un buen rato siguiendo las bases de datos del lado del cliente, y aunque html5 ya proporciona almacenamiento del lado del cliente todavía sigue siendo limitado, así que encontré este motor que funciona de lado del cliente :) http://javascriptsql.sourceforge.net