Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2007, 11h40   #1
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Par défaut [12.6]Update à partir d'un fichier

Bonjour à tous,

Mon problème est que je dois réaliser un update de données venant d'un fichier plat vers une base Sybase.

J'aurais aimé connaitre la meilleur solution à mettre en place en sachant que le nombre de lignes sera très important dans le fichier txt, mais qu'il n'y aura que 2 colonne (ID et VALEUR)

ps: La base est une base SYBASE 12.6

Merci.
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 14h08   #2
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
tu peux utiliser l'outil BCP pour intégrer tes onnées du fichier plat (txt) vers ta base, la commande va ressembler à cela :
Code :
bcp tempdb..toto IN toto.dat -Usa -PPW -Ssrv_sybase -c
voila pour l'intégration sinon préçise ce que tu nomme update??
A+
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 14h30   #3
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Lors que je parle d'update je parle de mise à jour de lignes

donc je ne pense pas que l'outil BCP soit adapté car avec BCP on ne fait que de l'insert, moi je veux mettre à jour des enregistrements
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2007, 10h26   #4
Membre du Club
 
Inscription : septembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 39
Points : 42
Points : 42
Bonjour,

Il y a 2 solutions, assez similaires :
- en SQL, comme arona le sous-entend. Tu crees une nouvelle table et inseres le contenu de ton fichier avec bcp. Ensuite, tu construis tes updates dynamiquement :
select 'update table_to_update set VALEUR=' + valeur_table_tempo + ' where ID=' + id_table_tempo from table_tempo
et tu joues le resultat de ce select
- tu generes le meme type d'ordre en lisant ton fichier txt dans un script, en extrayant les champs a l'aide de cut (si tu es sous unix)

La premiere solution me semble etre la plus simple.

A+,
Laurent
lparodi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 01h30   #5
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Un mélange des 2:

- bcp in pour "monter" votre fichier plat dans une table "de travail"
- puis traitement SQL pur avec jointure pour l'update (puisque l'ASE le permet si bien)
- enfin suppression de la table de travail

PS : un ASE 12.6 ? Vous êtes sûr ??
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 16h12   #6
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Oui c est ce qui est ecrit lors d'un
Citation:
Sybase IQ/12.6.0/060801/P/ESD 7/RS6000MP/AIX
Merci pour vos réponses je vais tester ca
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 16h39   #7
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
la 12.6 c'est pour IQ et non ase (quoi que la 12.7 est up now). donc tu travail sur une base decisionnel et non transactionnel, le bcp n'existe sur IQ que pour saversion 12.7 il faut donc utiliser les cmd load de IQ.
Je ne connais que très peu le produit IQ, mais recherche sur sybooks.sybase.com dans la section sybase IQ.
sorry et bon courage.
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h53.


 
 
 
 
Partenaires

Hébergement Web