segunda-feira, 27 de outubro de 2014

Oracle: Recriar Tablespace temporária TEMP

Recriar Tablespace temporária TEMP
Segue abaixo procedimento para recriar a tablespace TEMP do Oracle:

1)Primeiro, é necessário criarmos uma tablespace intermediária:
CREATE TEMPORARY TABLESPACE TEMP2
TEMPFILE 'E:\ORADATA\XE\TEMP2_01.DBF' SIZE 5M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

2)Tornamos esta tablespace temporária como padrão:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;

3)Apagamos a tablespace TEMP que já não é mais a padrão:
DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

Observações:
  • Embora tenhamos informado para apagar fisicamente o datafile da tablespace é necessário que verifiquemos se o mesmo foi apagado, pois, principalmente com Windows isso pode não ocorrer. Se for o caso devemos então apagar manualmente o arquivo após o comando acima.
  • Caso não consiga apagar a tablespace com o comando acima é porque ela está em uso por alguém, então é necessário que todos saiam do sistema e que seja repetido o comando novamente.
4) Criamos novamente a tablespace TEMP com o comando abaixo:
CREATE TEMPORARY TABLESPACE TEMP
TEMPFILE 'E:\ORADATA\XE\TEMP01.DBF' SIZE 100M REUSE
AUTOEXTEND ON NEXT 25M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

5) Tornamos ela novamente a padrão:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

6) Apagamos a TEMP2 que já não é mais necessária:
DROP TABLESPACE TEMP2 INCLUDING CONTENTS AND DATAFILES;
Observações:


Fonte: http://alexsandrohaag.blogspot.com.br/2008/04/recriar-tablespace-temporria-temp.html

terça-feira, 21 de outubro de 2014

JSF: Configurar timezone no web.xml


web.xml 

  1. <context-param>  
  2.   <param-name>timezone</param-name>  
  3.   <param-value>GMT-3</param-value>  
  4. </context-param>   
pagina.xhtml 
  1. <f:convertDateTime pattern="dd/MM/yyyy" timeZone="#{initParam.timezone}"/>    

Ou adicione a configiração abaixo no web.xml para utilizar a configuração do SO.

  1. <context-param>  
  2.    <param-name>timezone</param-name>  
  3.    <param-value>GMT-3</param-value>  
  4. </context-param>  

ou


 <context-param>  
  <description>USAR O TIME ZONE PADRÃO DO SISTEMA OPERACIONAL</description>  
  <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>  
  <param-value>true</param-value>  
  </context-param>  

iRreport: Relatório com múltiplas páginas estáticas / Multiple static pages in ireport


Para criar um relatório com várias páginas basta adicionar um grupo e inserir o conteúdo da nova página dentro do mesmo.

No exemplo abaixo o documento contém 8 páginas agrupadas a cada duas. Como o iReport fica muito lento quando trabalhamos com muitos componentes, eu utilizei subreports para contornar esse problema e também para deixar o relatório mais leve.

Ao imprimir será gerada uma página para cada grupo, ou como no meu exemplo duas páginas para cada grupo.


sexta-feira, 17 de outubro de 2014

Criar/Ler XML manualmente

XML


<?xml version="1.0" encoding="UTF-8"?>  
 <Root>  
   <ns:Lote>  
     <ns:Id>0001</ns:Id>  
     <ns:Pais>BR</ns:Pais>  
     <ns:Data>01/01/2014</ns:Data>  
     <ns:Cabecalho>  
       <ns:DataOrdem>01/02/2014</ns:DataOrdem>  
       <ns:CNPJ>CNPJ</ns:CNPJ>  
       <ns:Detalhes>  
         <ns:Tipo>NORMAL</ns:Tipo>  
         <ns:Mercadoria>MOUSE</ns:Mercadoria>  
       </ns:Detalhes>  
       <ns:Detalhes>  
         <ns:Tipo>PRIORIDADE</ns:Tipo>  
         <ns:Mercadoria>NOTEBOOK</ns:Mercadoria>  
       </ns:Detalhes>  
       <ns:Detalhes>  
         <ns:Tipo>NORMAL</ns:Tipo>  
         <ns:Mercadoria>MONITOR</ns:Mercadoria>  
       </ns:Detalhes>  
     </ns:Cabecalho>  
   </ns:Lote>  
 </Root>  

Criar XML 

           try {  
                // Criar o arquivo XML manualmente  
                FileWriter file = new FileWriter("c:\\saidaDados.xml");  
                BufferedWriter writer = new BufferedWriter(file);  
                StringBuffer xml = new StringBuffer();  
                xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");  
                xml.append("<ns:Lote>");  
                xml.append("<ns:Id>" + "0001" + "</ns:Id>");  
                xml.append("<ns:Pais>BR</ns:Pais>");  
                xml.append("<ns:Data" + "01/01/2014"+ "</ns:Data");  
                xml.append("<ns:Cabecalho>");  
                xml.append("<ns:DataOrdem>" + "01/02/2014"     + "</ns:DataOrdem>");  
                xml.append("<ns:CNPJ>" + "00.000.000/0000-00" + "</ns:CNPJ>");  
                for (int i = 0; i < 3; i++) {  
                     xml.append("<ns:Detalhes>");  
                     xml.append("<ns:Tipo>" + "NORMAL" + i + "</ns:Tipo>");  
                     xml.append("<ns:Mercadoria>" + "MOUSE" + i + "</ns:Mercadoria>");  
                     xml.append("</ns:Detalhes>");  
                }  
                xml.append("</ns:Cabecalho>");  
                xml.append("</ns:Lote>");  
                xml.append("</Root>");  
                // Criar objeto DOM a partir do StringBuffer (utilizar recursos do DOM)  
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
                DocumentBuilder parser = factory.newDocumentBuilder();  
                Node document = parser.parse(new InputSource(new StringReader(xml.toString())));  
                TransformerFactory tf = TransformerFactory.newInstance();  
                Transformer transformer = tf.newTransformer();  
                //Omitir o atributo standalone  
                ((org.w3c.dom.Document) document).setXmlStandalone(true);  
                //Identação  
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");  
                transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes");  
                transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");  
                //Gravar o XML  
                ByteArrayOutputStream s = new ByteArrayOutputStream();  
                transformer.transform(new DOMSource(document), new StreamResult(s));  
                writer.write(new String(s.toByteArray()));  
                 writer.flush();  
                 writer.close();                       
           } catch (Exception e) {  
                e.printStackTrace();  

Ler XML 


      public void lerXml() throws SAXException, IOException{            
        try {  
             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
                DocumentBuilder db = dbf.newDocumentBuilder();  
                String ArquivoXML = "c:\\entradaDados.xml";  
                Document doc = null;  
                doc = db.parse(ArquivoXML);  
                Element raiz = doc.getDocumentElement();  
                NodeList nodeLote = raiz.getElementsByTagName("ns:Lote");  
                Element elementLote = (Element)nodeLote.item(0);  
                String pais = recuperaValorDoElemento(elementLote, "ns:Pais");  
             String processo = recuperaValorDoElemento(elementLote, "ns:Id");  
             String cliente = recuperaValorDoElemento(elementLote, "ns:CNPJ");  
             // Imprimir valores  
             System.out.println("Pais: " + pais);  
             System.out.println("ProcessID: " + processo);  
             System.out.println("CNPJ: " + cliente);  
             NodeList listDetalhes = doc.getElementsByTagName("ns:Detalhes");  
              for (int i = 0; i < listDetalhes.getLength(); i++){  
                   Element elemetItem = (Element)listDetalhes.item(i);  
                   String nrPedidoItem = recuperaValorDoElemento(elemetItem, "ns:Tipo").trim();  
                   String incoterm = recuperaValorDoElemento(elemetItem, "ns:Mercadoria");  
                   // Imprimir valores  
                   System.out.println("PEDIDO:" + nrPedidoItem);  
                   System.out.println("INCOTERM: " + incoterm);  
              }               
           } catch (ParserConfigurationException e) {  
                e.printStackTrace();  
           }       
      }  
      public String recuperaValorDoElemento(Element element, String nomeDoElemento) {  
           NodeList nodeList = element.getElementsByTagName(nomeDoElemento);  
           // Verifica se a lista é nula  
           if (nodeList == null) {  
                return "";  
           }  
           // Verifica se o item é nulo  
           Element elemento = (Element) nodeList.item(0);  
           if (elemento == null) {  
                return "";  
           }  
           // Verifica se o valor é nulo  
           Node node = elemento.getFirstChild();  
           if (node.getNodeValue().trim() == null) {  
                return "";  
           }            
           // Retorna o valor  
           return node.getNodeValue().trim();  
      }  

segunda-feira, 13 de outubro de 2014

jQuery Masked Input Plugin

  • a – Represents an alpha character (A-Z,a-z)
  • 9 – Represents a numeric character (0-9)
  • * – Represents an alphanumeric character (A-Z,a-z,0-9)
Ex:

<rich:jQuery selector="#UNLOCODE" query="mask('aa***')" timing="domready" />