Postagens

Mostrando postagens de novembro, 2010

Apagando Tabelas "Futuras" (acidentais) do módulo Contábil

   Nestes dias ao configurar um dump de dados de determinado cliente percebi que o processo estava demorando demais. Sendo assim abri o arquivo de log do dump e percebi que estavam sendo exportadas diversas tabelas CCMC (Movimentos Contábeis) que, por padrão, são sufixadas pelo ANO corrente e são criadas já algumas para alguns anos a frente. Como por exemplo CCMC2010, CCMC2011, CCMC2012, etc...    O porém disso tudo é que, nesta base especificamente, foi realizada uma criação de diversas tabelas com vários anos a frente. Chegando até o ano de 9999. Além de vários anos que antecediam até a própria idade da empresa. Apesar destas tabelas estarem vazias elas ocupam espaço no banco de dados, além de tornarem o processo de exportação/importação de dados muito mais demorado.     Como remover uma a uma daria bastante trabalho montei o script abaixo para gerar como saída o comando de exclusão de cada uma destas tabelas com anos tão altos. O script ficou assim: select 'DROP TABLE '

Ajustando campos Date para não gravar horário

Imagem
Os campos do tipo "Date" nas tabelas do CIGAM, como regra, salvam somente a data sem o horário nos registros. Quando realizamos alguma operação de insert/update diretamente pelo banco de dados é necessário que façamos uma adequação deste tipo de campo para não gravar o horário junto (padrão dos bancos de dados Oracle e MSSQL).   Os comandos que podemos usar para gravar da forma correta são os seguintes: Para Oracle:   Obs.: Como vimos bastante simples, basta usar a função "trunc" de sysdate (que retorna a data atual) ou do campo de tipo date que quisermos ajustar. Para MSSQL:   Obs.: Para MSSQL como podemos observar acima é um pouco mais complicado de converter, já que não existe a função trunc para datas. Desta forma se faz necessário utilizarmos uma combinação de funções de conversão: cast(floor(cast(getdate() as float)) as datetime). Bom, trata-se de um post bastante simples, com o intuito de ajudar nestas situações onde podemos perder um certo tempo ten