exportação de dados formato sql

Discussão em 'Progress 4GL' iniciado por angeloata, Dezembro 30, 2011.

  1. angeloata

    angeloata Membro Participativo

    Pessoal comecei a fazer um programa para exportar dados do progress em formato sql para popular umas tabelas para testes e gostaria de fazer de uma forma generica, mas chegou num certo ponto e emperrou, falta a parte que exporta os dados, alguem poderia me ajudar?

    Att.

    Angelo

    OUTPUT TO VALUE("C:\ARQUIVO.SQL").
    FOR EACH _FILE WHERE
    _FILE._FILE-NAME = "ADAEMPRE":

    PUT UNFORMATTED
    "INSERT INTO " +
    TRIM(_FILE._FILE-NAME) + " (".

    FOR EACH _FIELD OF _FILE BREAK BY _FIELD._FILE-RECID BY _FIELD._ORDER:

    PUT UNFORMATTED
    _FIELD._FIELD-NAME.


    IF LAST-OF(_FIELD._FILE-RECID) THEN DO:
    PUT UNFORMATTED
    ") ".
    END.
    ELSE DO:
    PUT UNFORMATTED
    ", ".
    END.

    END.

    PUT UNFORMATTED
    "VALUES (".

    *** falta esse trecho ***

    PUT UNFORMATTED
    ");" SKIP.

    END.
    OUTPUT CLOSE.
  2. baltazar

    baltazar Membro Participativo

    Exporte em CSV e faça o Load pelo 'LOAD DATA'
  3. allan.oliveira

    allan.oliveira Sem Pontuação

    Geralmente um CSV resolve mesmo esse problema para transferencia de dados. Você manja como fazer isso em progress?
    No seu caso eu faria da seguinte forma:

    1) Usaria uma tabela temporária no progress para armazenar todos os dados.
    2) Faria um output para o meu ".csv" exemplo:

    Código:
    output to value ("arquivo.csv").
    For each tt_tabelatemporaria no-lock:
       put unformatted
             trim(string(tt_tabelatemporaria.campo1)
             ";"
             trim(string(tt_tabelatemporaria.campo2)
             ";"
             [...]
    end.
    output close.
    Em SQL vc consegue importar para a tabela que vc queira.
    *Lembre que essa tabela deve ter o mesmo formato dos dados e quantidade de campos do arquivo csv.

    abs!

Compartilhe esta Página