Desafio / Quebra-cabeça SQL / Regex: Como remover comentários do código SQL (usando a consulta SQL)?
ExigênciasOs comentários de uma linha (por exemplo, meu comentário) devem ser removidos.Os comentários com várias linhas (por exemplo, / * meu comentário * /) devem ser removidos.O conteúdo de literais de strings (por exemplo, 'este é um comentário de várias linhas: / * meu comentário * /') deve ser ignorado.O conteúdo dos identificadores (por exemplo, "- coluna 1 -") deve ser ignorado.literais e identificadores
Literais e identificadores podem se estender por várias linhas
Comentários de linha únicaUm comentário de linha única pode ser o último elemento do código e pode não terminar com uma nova linha.
Comentários multilinhas aninhadosEm bancos de dados como SQL Server e PostgreSQL, os comentários de várias linhas podem ser aninhados, por exemplo:
/* outer comment /* inner comment */ */
O código a seguir é inválido, pois apenas o comentário interno está fechado:
/* opened outer comment /* closed inner comment */
Em bancos de dados como Teradata, Oracle, MySql e SQLite, não há conceito de comentários aninhados. O código a seguir é inválido, pois o comentário já está fechado com o * / mais à esquerda.
/* comment /* is closed */ ERROR */
No entanto, este é um código válido:
/* comment /* still the same comment */