quinta-feira, 28 de junho de 2012

Removendo caracteres de nova linha e tab em consultas no Oracle


Para remover caracteres de nova linha e tabulação (TAB) em textos no Oracle utilize a função REPLACE.

Sintaxe da função:
    REPLACE (String_Original, String_para_Alterar, [String_Destino])

String_Original: Conteúdo original
String_para_Alterar: String que será pesquisa na String_Original
String_Destino: parâmetro opcional que indica qual conteúdo deve ficar em todas as ocorrências de String_para_Alterar na String_Original.

Exemplo: Select Replace('Fusca 1980','1980','1985')     Retorna: 'Fusca 1985'
               Select Replace('Fusca 1980','1980')               Retorna: 'Fusca '

Para resolver o problema proposto neste post são "encadeados" vários replaces para obter o resultado esperado:

REPLACE(REPLACE(REPLACE(String_Original, CHR(10)), CHR(13)), CHR(9)) 

segunda-feira, 25 de junho de 2012

SQL Saturday 147

Nos dias 24 e 25 de agosto de 2012 ocorrerá em Recife a conferência SQL Saturday 147 (http://www.sqlsaturday.com/147/eventhome.aspx).

SQL Saturday são eventos de um dia inteiro de treinamento gratuito, com uma grande variedade de temas e com vários níveis de conhecimento, para atender todos os interessados em SQL Server.

Este evento é organizado pelo SQL Pass (http://www.sqlpass.org/) que é uma organização independente de profissionais SQL Server com mais de 100.000 afiliados no mundo.

No dia 25 as 11:30 estarei apresentando junto com o Marcus Vinicius Bittencourt (@mvbitt) como fazer replicação de informações no SQL Server e demonstrando na prática como replicar informações do Oracle para o SQL Server.

Neste link: http://www.sqlsaturday.com/147/schedule.aspx tem a agenda do evento com as palestras disponíveis.

Este evento é gratuito, portanto se tiveres interesse se inscreva logo para garantir a sua vaga.

sexta-feira, 1 de junho de 2012

SQL Server 2012 Restrições na Sintaxe do Raiserror

   Ao migrar um banco de dados SQL Server 2008 R2 para outro servidor com a versão SQL Server 2012, nos deparamos com alguns cancelamentos logo após a autenticação do aplicativo.

   Após uma análise de onde ocorria o problema chegamos em uma trigger que tinha os tratamentos de erros no formato:

RAISERROR integer 'string'

   Não foi dificil depois disto concluir que este formato foi descontinuado nesta versão do banco de dados, devendo agora ser utilizado como RAISERROR(...).

   Para maiores detalhes sobre as features descontinuadas no SQL Server 2012, acesse o link: http://technet.microsoft.com/en-us/library/ms144262(SQL.110).aspx