rafaelsnsa

importa.sh

Jul 16th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.85 KB | None | 0 0
  1. #!/bin/bash
  2. # Criado por: Rafael Saraiva
  3. # Script para importação da tabela CNL para Mysql
  4. # A referida tabela é fornecida pela ANATEL, o download pode ser realizado no link abaix:
  5. # http://sistemas.anatel.gov.br/areaarea/N_Download/Tela.asp?varMod=Publico&SISQSmodulo=7179 > Central CNL > Fixo > Todas
  6. # O script não possui qualquer controle de erros, utilize por sua conta e risco
  7. #
  8.  
  9. # Utilizar o arquivo txt original da Anatel, sem copiar e colar o conteudo.
  10.  
  11. # Dados para conexao ao banco de dados local
  12. DBUSER=root
  13. DBPASS=root
  14. DBNAME=db01
  15.  
  16. # Nome da tabela temporaria onde serão armazenados os registros até o fim do processo. Só alterar se já existir alguma tabela com mesmo nome em seu banco de dados
  17. DBTEMPTABLE=temp
  18.  
  19. # Nome da tabela no banco para onde serão importados os dados
  20. DBENDTABLE=cnl
  21.  
  22. # Nome/local do arquivo txt original com os registros da ANATEL
  23. TXTFILE=/tmp/cnl.txt
  24.  
  25. PREFIX=`date +"%Y-%m-%d_%H-%M"`
  26. TEMP_FILE=/tmp/$PREFIX.txt
  27. touch $TEMP_FILE
  28.  
  29. iconv -f iso-8859-1 -t UTF-8 $TXTFILE | sed 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚçÇ/aAaAaAaAeEeEiIoOoOoOuUcC/' > $TEMP_FILE
  30.  
  31. mysql -u $DBUSER -p$DBPASS $DBNAME -e "create table $DBTEMPTABLE ( linha char(255) DEFAULT NULL ) engine=MyISAM;"
  32.  
  33. mysql  --local-infile -u $DBUSER -p$DBPASS $DBNAME -e "LOAD DATA LOCAL INFILE '$TEMP_FILE' INTO TABLE $DBTEMPTABLE LINES TERMINATED BY '\n'"
  34.  
  35. mysql -u $DBUSER -p$DBPASS $DBNAME -e "create table $DBENDTABLE (
  36. sigla_uf char(2),
  37. sigla_cnl char(4),
  38. codigo_cnl char(5),
  39. nome_localidade char(50),
  40. nome_municipio char(50),
  41. cod_area_tarifacao char(5),
  42. prefixo char(7),
  43. prestadora char(30),
  44. num_faixa_inicial char(4),
  45. num_faixa_final char(4),
  46. latitude char(8),
  47. hemisferio char(5),
  48. longitude char(8),
  49. sigla_cnl_area_local char(4)
  50. );"
  51.  
  52. mysql -u $DBUSER -p$DBPASS $DBNAME -e "insert into
  53. $DBENDTABLE (sigla_uf,sigla_cnl,codigo_cnl,nome_localidade,nome_municipio,cod_area_tarifacao,prefixo,prestadora,num_faixa_inicial,num_faixa_final,latitude,hemisferio,longitude,sigla_cnl_area_local)
  54. select
  55. rtrim( substr( linha ,  1 , 2 ) ) sigla_uf,
  56. rtrim( substr( linha ,  3 , 6 ) ) sigla_cnl,
  57. rtrim( substr( linha ,  7 , 11 ) ) codigo_cnl,
  58. rtrim( substr( linha ,  12 , 61 ) ) nome_localidade,
  59. rtrim( substr( linha ,  62 , 111 ) ) nome_municipio,
  60. rtrim( substr( linha ,  112 , 116 ) ) cod_area_tarifacao,
  61. rtrim( substr( linha ,  117 , 123 ) ) prefixo,
  62. rtrim( substr( linha ,  124 , 153 ) ) prestadora,
  63. rtrim( substr( linha ,  154 , 157 ) ) num_faixa_inicial,
  64. rtrim( substr( linha ,  158 , 161 ) ) num_faixa_final,
  65. rtrim( substr( linha ,  162 , 169 ) ) latitude,
  66. rtrim( substr( linha ,  170 , 174 ) ) hemisferio,
  67. rtrim( substr( linha ,  175 , 182 ) ) longitude,
  68. rtrim( substr( linha ,  183 , 186 ) ) sigla_cnl_area_local
  69. from
  70. $DBTEMPTABLE;"
  71.  
  72. mysql -u $DBUSER -p$DBPASS $DBNAME -e "drop table $DBTEMPTABLE;"
Advertisement
Add Comment
Please, Sign In to add comment