Fórum Problemas ao importar registros #411348
09/01/2012
0
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
Curtir tópico
+ 0Posts
10/01/2012
Marco Salles
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.
Gostei + 0
10/01/2012
Fábio Nakashima
Obrigado.
Gostei + 0
10/01/2012
Marco Salles
INSERTEX INTO Fornecedor (codigo,rsocial,cnpj)
FROM CSV C:\Users\Loja\Documents\Fornecedor.CSV SKIP 1 DELIMITER ; ;
Gostei + 0
11/01/2012
Fábio Nakashima
Error Message:
----------------------------------------
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 25.
).
Gostei + 0
11/01/2012
Marco Salles
INSERTEX INTO Fornecedor [(codigo,rsocial,cnpj)]
FROM CSV C:\Users\Loja\Documents\Fornecedor.CSV SKIP 1 DELIMITER ; ;
tente colocar o [ ] em [(codigo,rsocial,cnpj)]
Gostei + 0
11/01/2012
Fábio Nakashima
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
Gostei + 0
11/01/2012
Marco Salles
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)