GARANTIR DESCONTO

Fórum Problemas ao importar registros #411348

09/01/2012

0

Olá pessoal!

Estou com um problema para inserir dados em uma tabela CSV para FDB através do Ibexpert. Utilizo o comando insertex e os dados são inseridos, até aparecem no DBGrid, contudo depois que faço o commit, a tabela não atualiza os indices, ou seja parece que os novos dados não ficam com os indices ativos, na coluna PK os novos dados ficam deslocados e está em formato Varchar.
Fico muito grato se alguém puder me ajudar.

Eu coloco desta forma:

INSERTEX INTO Fornecedor (codigo,rsocial,cnpj)
FROM CSV C:\Users\Loja\Documents\Fornecedor.CSV
DELIMITER ; SKIP 1;

Desde já agradeço.
Fábio Nakashima

Fábio Nakashima

Responder

Posts

10/01/2012

Marco Salles

Olá Senhores,
Estou com o seguinte problema ao tentar importar novos registros para a minha tabela, recebo o seguinte erro ao commitar:

Error Message:
----------------------------------------
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 25.
).

Verifiquei a coluna de referência mas não consigo achar o erro.

Agradeço à quem puder me ajudar.
Responder

Gostei + 0

10/01/2012

Fábio Nakashima

Sim. É o mesmo problema, vc conhece a solução?
Obrigado.
Responder

Gostei + 0

10/01/2012

Marco Salles

então

INSERTEX INTO Fornecedor (codigo,rsocial,cnpj)
FROM CSV C:\Users\Loja\Documents\Fornecedor.CSV SKIP 1 DELIMITER ; ;
Responder

Gostei + 0

11/01/2012

Fábio Nakashima

Não dá certo, está aparecendo esta mensagem.

Error Message:
----------------------------------------
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 25.
).
Responder

Gostei + 0

11/01/2012

Marco Salles

então

INSERTEX INTO Fornecedor [(codigo,rsocial,cnpj)]
FROM CSV C:\Users\Loja\Documents\Fornecedor.CSV SKIP 1 DELIMITER ; ;


tente colocar o [ ] em [(codigo,rsocial,cnpj)]
Responder

Gostei + 0

11/01/2012

Fábio Nakashima

Fiz uma tabela teste em CSV com um único registro.

Coloquei desta forma :

INSERTEX INTO Fornecedor (codigo,rsocial,cnpj)
FROM CSV C:\Users\Otica Tokio\Desktop\Forn.CSV delimiter ; skip 1;

O registro foi inserido, mas fica assim no DBGrid:

FORNECEDOR RSOCIAL CNPJ
102 Femacell Com 5102198700150
201 Cromal-Com. 5102178700178
205 Rei da Cutelari 2102198700133
301 Tami Indústria 4102198700150
110 Tokio 5,1022E+12

Alguma idéia?

Obrigado

Responder

Gostei + 0

11/01/2012

Marco Salles

Leia o Artigo tirado do Varlos H. Cantu sobre o tema



InsertEX

O comando InsertEx é uma extensão do comando Insert, padrão do SQL. Através dele, é possível importar dados de arquivos .csv (geralmente gerados pelo Excel) para tabelas no BD. A sintaxe do comando está descrita abaixo:

INSERTEX INTO nome_da_tabela [(lista de colunas)]
FROM CSV nome_do_arquivo
[SKIP n]
[DELIMITER caractere_delimitador]

Onde:

Nome_da_tabela: indica o nome da tabela que receberá os dados importados;
Lista_de_colunas: Opcional, indica o nome das colunas na tabela que receberão os dados importados;
N: Permite pular as “n” linhas do arquivo csv;
Caractere_delimitador: Define o caractere que delimita os campos, no arquivo csv. Se não informado, o padrão é o “:” (dois pontos). Pode-se escolher inclusive caracteres especiais, como o TAB (ex: delimiter #9);

Caso a tabela especificada não exista no banco de dados, ela será criada automaticamente, sendo que o número de colunas nessa tabela será igual à quantidade de valores da primeira linha do arquivo csv. Os nomes dos campos serão F_1, F_2, etc, e o tipo de todas as colunas será VARCHAR(255).

Caso uma lista de colunas seja especificada, apenas as informações dessas colunas serão inseridas.

O código abaixo apresenta um arquivo csv, gravado pelo Excel, com 3 “colunas”: Nome, Endereço e Telefone; e o código utilizando o InsertEx para importar esses dados para uma nova tabela no banco de dados.

Arquivo Teste.csv:

Nome;Endereço;Telefone
Carlos;Rua Goiás, 200;(11) 3456-9876
Sonia;R. Governador Pedro de Toledo, 100;
Elizabeth;Av. Moraes Salles, 1567;(14) 1234-5678

Comando executado no script executive do IBExpert:

INSERTEX INTO NOVA_TABELA FROM CSV C:\teste.csv DELIMITER ‘;’;

Tabela criada no banco de dados:

CREATE TABLE NOVA_TABELA (
F_1 VARCHAR(255),
F_2 VARCHAR(255),
F_3 VARCHAR(255)
);

Select * from nova_tabela;

F_1 F_2 F_3
Nome Endereço Telefone
Carlos Rua Goiás, 200 (11) 3456-9876
Sonia Governador Pedro de Toledo, 100
Elizabeth Av. Moraes Salles, 1567 (14) 1234-5678nsertEX

O comando InsertEx é uma extensão do comando Insert, padrão do SQL. Através dele, é possível importar dados de arquivos .csv (geralmente gerados pelo Excel) para tabelas no BD. A sintaxe do comando está descrita abaixo:

INSERTEX INTO nome_da_tabela [(lista de colunas)]
FROM CSV nome_do_arquivo
[SKIP n]
[DELIMITER caractere_delimitador]

Onde:

Nome_da_tabela: indica o nome da tabela que receberá os dados importados;
Lista_de_colunas: Opcional, indica o nome das colunas na tabela que receberão os dados importados;
N: Permite pular as “n” linhas do arquivo csv;
Caractere_delimitador: Define o caractere que delimita os campos, no arquivo csv. Se não informado, o padrão é o “:” (dois pontos). Pode-se escolher inclusive caracteres especiais, como o TAB (ex: delimiter #9);

Caso a tabela especificada não exista no banco de dados, ela será criada automaticamente, sendo que o número de colunas nessa tabela será igual à quantidade de valores da primeira linha do arquivo csv. Os nomes dos campos serão F_1, F_2, etc, e o tipo de todas as colunas será VARCHAR(255).

Caso uma lista de colunas seja especificada, apenas as informações dessas colunas serão inseridas.

O código abaixo apresenta um arquivo csv, gravado pelo Excel, com 3 “colunas”: Nome, Endereço e Telefone; e o código utilizando o InsertEx para importar esses dados para uma nova tabela no banco de dados.

Arquivo Teste.csv:

Nome;Endereço;Telefone
Carlos;Rua Goiás, 200;(11) 3456-9876
Sonia;R. Governador Pedro de Toledo, 100;
Elizabeth;Av. Moraes Salles, 1567;(14) 1234-5678

Comando executado no script executive do IBExpert:

INSERTEX INTO NOVA_TABELA FROM CSV C:\teste.csv DELIMITER ‘;’;

Tabela criada no banco de dados:

CREATE TABLE NOVA_TABELA (
F_1 VARCHAR(255),
F_2 VARCHAR(255),
F_3 VARCHAR(255)
);

Select * from nova_tabela;

F_1 F_2 F_3
Nome Endereço Telefone
Carlos Rua Goiás, 200 (11) 3456-9876
Sonia Governador Pedro de Toledo, 100
Elizabeth Av. Moraes Salles, 1567 (14) 1234-5678
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar