PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » condition dans la creation de la vue » 22/12/2008 17:55:45

non vous n'avez pas à vous excusé , je ne prends pas en mal , quand on est à la recherche du savoir on se plie ;
je suis assez étonné aussi par le résultat , mais peut être , comme je joins  la vue calculée à la vue qui a permis à son calcul, l'erreur doit se trouver à ce niveau , car , si je crée une table simple de 6 enregistrement et appliquer la requête , il renvoie 6 enregistrement comme vous l'avez dit .
je suis encore désolé
merci pour vos assistances

#2 Re : Général » importer les données dans une table depuis fichier » 22/12/2008 16:38:01

j'ai mis de la virgule entre les valeurs dans le fichier comme vous l'avez suggeré , mais il marche pas et le message d'erreur reste le même "pas de données pour la colonne COMMUNE ".

"04001" ,"Aiglun", "100" ,"AlpesSud" ,"101", "Digne-les-bains"
   
"04004" ,"Allemagne-en-Provence" ,"100"    "AlpesSud" ,"102", "Manosque"   

"04005", "Allons" ,"100","AlpesSud" ,"101", "Digne-les-bains" 

"04006","Allos"    ,"100",    "AlpesSud" ,"101", "Digne-les-bains"   

"04007","Angles" ,"100","AlpesSud", "101", "Digne-les-bains"
   
"04008"    ,"Annot","100", "AlpesSud" ,"101", "Digne-les-bains"

aidez svp si possible car je suis bloqué pour  ça depuis certains moment .
merci d'avance

#3 Général » importer les données dans une table depuis fichier » 22/12/2008 15:30:13

bennkabazz
Réponses : 4

bonjour tout le monde
je veux importer le fichier suivant dans ma table "importer" , du nom de champtable.csv.

"04001"    "Aiglun" "100" "AlpesSud" "101" "Digne-les-bains"
   
"04004" "Allemagne-en-Provence" "100"    "AlpesSud" "102" "Manosque"   

"04005" "Allons" "100"    "AlpesSud" "101" "Digne-les-bains" 

"04006"    "Allos"    "100"    "AlpesSud" "101" "Digne-les-bains"   

"04007"    "Angles" "100"    "AlpesSud" "101" "Digne-les-bains"
   
"04008"    "Annot"    "100" "AlpesSud" "101" "Digne-les-bains"

voici la structure de ma table :

create table importer (
codeinse text,commune text,champ1 text ,champ2 text ,champ3 text,champ4 text );

ma commande copy
copy importer ("codeinse" ",commune" ,"champ1" ,"champ2" ,"champ3" ,"champ4") FROM 'C:/champ/Champtable.csv' with CSV;

quand j'execute il me renvoie le message d'erreur suivant que je comprenne (pas de données pour la colonne "commune") mais que j'arrive toujours pas résoudre ;

ERROR: missing data for column "commune"
État SQL :22P04
Contexte : COPY importer, line 1: ""

merci de votre aide

#4 Re : Général » condition dans la creation de la vue » 22/12/2008 12:07:12

bonjour
il marche bien cette requête de création de la vue car il renvoi le résultat désireux , mais parcontre il renvoie 36 enregistrements étant donné que j'en ai 6 dans ma table , j'ai l'impression qu'il multiplie les 6 enregistrements par 6 pour en faire à 36 ; aidez moi s'il vous plait .
voici la requête :

CREATE VIEW mavue (colonne1) AS
    SELECT
       CASE WHEN a=1 THEN 1
            ELSE 0
       END
    FROM matable;

#5 Re : Général » problème avec vue » 22/12/2008 00:56:39

bonjour
merci j'ai résolu le problème grâce à la fonction dont vous m'avez indiqué :

COALESCE

#6 Général » problème avec vue » 20/12/2008 23:59:54

bennkabazz
Réponses : 2

bonjour tout le monde
je veux une somme qui doit venir des deux vues suivantes :

create view vue1 (colonne1) as select colonneA from table 1 ;

cette vue amène 150

et

create view vue2 (colonne2) as select colonneB from table2 ;

cette vue amène un champ vide , car la colonneB est aussi vide .

donc si je fais 

create view vuesomme (somme) as select sum((colonne1)+(colonne2)) from vue1 natural join vue2 ;

il m'amène un champ vide , il considère pas les 150;

par contre si je récrée les 2 vues  sur deux champs qui contiennent tous une valeur réelle , il donne la somme réelle ;
aisez moi s'il vous plait

#7 Re : Général » condition dans la creation de la vue » 18/12/2008 23:41:15

merci beaucoup  à  vous tous ; il fait mon affaire .
très sympa

#8 Re : Général » condition dans la creation de la vue » 17/12/2008 13:38:04

bonjour
merci d'abord pour votre assistance.
c'est à dire je veux un truc comme ça :
colonne A de ma table ={1, 3,7,9,0,1,5,1,6,1}
si  je fais

create view mavue (colonne1) as select colonne2 from matable machin ...............;

et en plus  si  je fais

select * from mavue;

je veux avoir colonne1={1,0,0,0,0,1,0,1,0,1}   
partout où y avait 1 dans la colonne2 de ma table  reste à 1 , mais partout où y avait autre valeur sont transformé à 0.
merci d'avance

#9 Re : Général » condition dans la creation de la vue » 17/12/2008 01:49:47

votre exemple est vraiment parlant , mais malhereusement il traite pas trop ma question;
je ne veux avoir dans ma colonne résulat que des 1 et des 0 selon que la colonne sur laquelle porte la vue, contient 1 ou autre valeur . 1 pour les lignes qui contiennent 1 et 0 pour les lignes qui contiennent autre valeur.
j'ai besoin de votre aide encore si possibles s'il vous plait

#10 Général » condition dans la creation de la vue » 17/12/2008 00:31:25

bennkabazz
Réponses : 12

bonjour à tous
je veux creer une vue qui n'amène que 1 et  0 comme valeur ; 1 pour toutes les lignes où la colonne concernée de la table contient 1 et  0 dans tous les autres cas ,pour toutes les lignes de la table . c'est à dire , ma vue portera sur une colonne A de ma table , elle amènera 1 pour toutes les lignes où A = 1 et  0 pour toutes autres valeurs contenant A . j'ai fait assez de tentative pour cette  requette , car j'ai tenté d'utiliser "si" , mais ça marche pas ; aidez moi s'il vous plait .
merci d'avance

#11 Re : Général » somme des vues » 12/12/2008 15:00:32

par exemple ma vue1 m'envoie une colonne contenant  le chiffre 10  et ma vue2 m'envoie  une autre colonne  contenant un chiffre 20  ,
je veux maintenant une vue qui calcule  la somme des deux , c'est à dire  , la vuesomme envoie 30; j'espère être claire .

une deuxième question s'il vous plait :
je veux faire une autre vue qui envoie un champ "AUTRES" contenant les  codes géographiques ne commençant pas par un nombre du deux chiffres  du lot suivant : {'06', '05', '04', '13', '83', '84'};  c'est à dire si le code géographique ne commence pas par l'un de ces 2 chiffres , le champs "AUTRE" envoie le code geo en question  ;   et j'ai un autre champ  de ma table qui contient tous les codes géographiques .
merci de votre aide.

#12 Général » somme des vues » 12/12/2008 01:24:41

bennkabazz
Réponses : 3

bonjour tout le monde
comme faire la somme des vues s'il vous plait ? par exemple :

create view mavue1 (col1) as select col1 from matable1 ;

et

create view mavue2 (col2) as select col2 from  matable2 ;

merci d'avance de votre aide

#13 Re : Général » problème avec la clause where dans une requete » 11/12/2008 10:51:58

vous êtes formidable , je voulais exactement le "and" au lieu de "or" , mais je m'etais unpeu mal exprimé ,d'ailleurs  je réformule bien ainsi :
je fais une vue qui doit faire la somme des éléments d'une colonne "toto" en considerant "1" comme valeur de la colonne si ces conditions sont remplis au même moment : col1 IN (24,28) , col2 = "Z" , col3>=1 AND col5<=8 , col4 = 'Z' et considerer "toto" comme "0" au cas où une de ces conditions est fausse à fortiori toutes , cela pour toutes les lignes de ma table et me retourne "somme" , c'est à dire qu'il test toutes les lignes de ma table avant de rétourner somme .
merci beaucoup d'avance et remercie pour la première aide ;

#14 Général » problème avec la clause where dans une requete » 10/12/2008 16:34:30

bennkabazz
Réponses : 2

bonjour tout le monde
je veux créer une vue qui doit calculer la somme des valeurs d'une colonne si les conditions dans la clause WHERE sont bien remplis , j'ai procédé comme ça ;

  create view  mavue (col1,col2) as select col1,sum(col2) from matable where   col 3 = {24 ou 28} or col4= "Z" or  col5 =[1..8 ] or col6="Z"  ;
il plante.

comme vous remarquez  certaines colonnes doivent prendre leurs valeurs dans un ensemble dans la clause where ; c'est à dire je dois comparer mes colonnes de la clause where à cet intervalle là:
24Z01Z  à 24Z08Z  ou  28Z01Z à 28Z08Z
j'ai besoin d'aide svp

#15 Général » création de la vue pour une BD » 05/12/2008 23:27:45

bennkabazz
Réponses : 1

bonjour tout le monde
je dois créer une vue dans ma base de donnée qui contient quelques  tables , dont 4 sont  liées entre elles  ; certaines données de la vue doivent venir directement de ces 4 tables , mais par contre d'autres doivent êtres calculées avec les champs d'autres tables de la base et les champs de ces 4 tables . je n'ai pas une idée de la structure de cette vue ( pas la syntaxe ) qui m'a l'air unpeu compliquée et en plus j'en ai jamais  crée. aidez moi s'il vous plait .
merci d'avance de votre aide

#16 Re : Général » affichage dans une table » 04/12/2008 11:33:43

s'il vous plait j'ai pas trop compris , si vous pouvez être unpeu explicite
en plus je travaille en local encore , tout est sur une suele machine
merci pour la premiere aide

#17 Re : Général » probleme de clé » 04/12/2008 00:49:04

j'essaie d'être plus claire , c'est comme ça que j'ai procedé pour créer ma clé primaire dans la table A.

ALTER TABLE tableA  ADD CONSTRAINT la_table_pkey PRIMARY KEY (champ1, champ2,champ3);

et dans une fonction jai mis les valeurs de ces trois champs dans un champs unique  nommé id_rsa , mais quand je fais  :

alter TABLE tableB add constraint cle_etrangere foreign key (colonneB) references tableA (id_rsa) on delete cascade;

:

j'ai ce message d'erreur :

NOTICE:  constraint cle_etrangère_diag on table diagnostique depends on table rsa
NOTICE:  constraint cle_etrangère_um on table unite_medicale depends on table rsa
NOTICE:  constraint cle_etrangère on table acte depends on table rsa

ERROR: cannot drop table rsa because other objects depend on it
État SQL :2BP01
Astuce : Use DROP ... CASCADE to drop the dependent objects too.

merci pour votre assistance

#18 Général » probleme de clé » 03/12/2008 22:32:28

bennkabazz
Réponses : 2

bonjour tout le monde
j'ai une table A qui contient une clé primaire composée de la concatenation des trois champs de cette table ; et 3 autres tables B,C,D dont leurs  differentes clés primaires composés d'un seuls champs  doivent referencer la clé primaire de la table A ; comment faire cette liaison ? car ma grande difficulté , c'est la clé est composé  , donc comment lier cette clé de trois champs aux clés d'un seul champs des autres tables ?
merci de votre aide

#19 Re : Général » affichage dans une table » 03/12/2008 22:21:05

je me suis déconnecté et réconnecté , mais c'est la même chose ;
merci de la première aide si possible j'en sollicite encore

#20 Général » affichage dans une table » 03/12/2008 13:19:12

bennkabazz
Réponses : 5

bonjour
quand j'execute ma requete , ma table apparait avec les bons resultats de la requete mais les noms des champs n'apparaissent pas au niveau des entêtes des colonnes , je ne sais pas si j'ai fait une mauvaise manipulation ou  quoi , car c'etait pas comme ça au debut ;
merci de votre aide

#21 Re : PL/pgSQL » appel fonction » 02/12/2008 01:24:41

merci de ton aide mais  jai dejà fais cela , ya plantage toujours ; par exemple regarder ce code sil vous plait ; jai cinq fctions ici qui sont : importer_rsa , importer_um, importer_diag , importer_acte et importer_pmsi  , elle marche toute une à une , mais quand j'appelle dans des boucles de la fonction nommée importer_pmsi les 4 premières , jai un message d'erreur de ce
genre

ERROR: syntax error at or near "importer_um"
État SQL :42601
Contexte : SQL statement in PL/PgSQL function "importer_pmsi" near line 24

voici en quoi resemble mon mes fonctions

CREATE OR REPLACE FUNCTION importer_rsa (donnee text ) RETURNS void AS
    $BODY$
    DECLARE

    a character varying(9);  b character varying(3);  c character varying(10);  d character varying(3); e character varying(3); f character varying(2) ;  g character varying(2) ; h character varying(1);
    i character varying(2) ; j character varying(1) ; k character varying(3) ; l character varying(2) ; m character varying(2) ; n character varying(1) ;  o character varying(2);  p character varying(1) ;
    q character varying(3);  r character varying(2) ; s character varying(3) ;  t character varying(3) ; u character varying(1) ;  v character varying(1) ;  w character varying(1) ;  x character varying(2) ;
    y character varying(4) ; z character varying(1) ; ab character varying(1) ;  ac character varying(1);  ad character varying(4) ;ae character varying(5) ;af character varying(4) ;ag character varying(2) ; 
    ah character varying(3) ; ai character varying(4) ; aj character varying(4) ; ak character varying(1) ; al character varying(4) ; am character varying(3) ; an character varying(3) ; ao character varying(3) ;
    ap character varying(3) ; aq character varying(2) ;  ar character varying(3) ; as character varying(3) ;at character varying(3) ;au character varying(3);   av character varying(1) ; aw character varying(3) ;
    ax character varying(3); ay character varying(3) ; az character varying(3) ; a1 character varying(3); a2 character varying(3); a3 character varying(3) ;  a4 character varying(3);  a5 character varying(3) ;
    a6 character varying(1) ; a7 character varying(6) ; a8 character varying(6) ; a9 character varying(2) ; a10 character varying(4) ; 
   
     
begin
    a:=substring (donnee from 1 for 9);  b:= substring (donnee from 10 for 3);  c:= substring (donnee from 13 for 10); d:= substring (donnee from 23 for 3); e:= substring (donnee from 26 for 3);  f:= substring (donnee from 29 for 2); g:= substring (donnee from 31 for 2);
    h:= substring (donnee from 33 for 1); i:= substring (donnee from 34 for 2); j:= substring (donnee from 36 for 1); k:= substring (donnee from 37 for 3); l:= substring (donnee from 40 for 2);  m:= substring (donnee from 42 for 2); n:= substring (donnee from 44 for 1);
    o:= substring (donnee from 45 for 2); p:= substring (donnee from 47 for 1); q:= substring (donnee from 48 for 3);  r:= substring (donnee from 51 for 2); s:= substring (donnee from 53 for 3);  t:= substring (donnee from 56 for 3);
    u:= substring (donnee from 59 for 1);
    v:= substring (donnee  from 60 for 1); W:= substring (donnee from 61 for 1); x:= substring (donnee from 62 for 2);  y:= substring (donnee from 64 for 4); z:= substring (donnee from 68  for 1);  ab:= substring (donnee from 69 for 1); ac:= substring (donnee  from 70  for 1);
    ad:= substring(donnee  from 71 for 4); ae:= substring(donnee from 75 for 5); af:= substring(donnee from 80 for 4); ag:=substring (donnee from 84 for 2); ah:= substring(donnee from 86 for 3);   ai:= substring(donnee from 89 for 4);
    aj:= substring (donnee from 93  for 4); ak:= substring(donnee from 97 for 1); al:= substring(donnee from 98 for 4); am:= substring(donnee from 102 for 3); an:= substring(donnee from 105 for 3);ao:= substring(donnee from 108 for 3);
    ap:= substring(donnee from  111 for 3); aq:= substring (donnee from 114 for 2);
    ar:= substring(donnee from 116 for 3);as:= substring(donnee from 119 for 3); at:= substring(donnee from 122 for 3); au:= substring(donnee from 125 for 3);av:= substring(donnee from 128 for 1); aw:= substring(donnee from 129 for 3); ax:= substring (donnee from 132 for 3);
    ay:= substring(donnee from 135 for 3); az:= substring(donnee from 138 for 3);a1:= substring(donnee from 141 for 3); a2:= substring(donnee from 144 for 3); a3:= substring(donnee  from 147 for 3); a4:= substring(donnee from 150 for 3); a5:= substring (donnee from 153 for 3);
    a6:= substring(donnee from 156 for 1); a7:= substring(donnee from 157 for 6); a8:= substring(donnee from 163 for 6); a9:= substring(donnee from 169 for 2); a10:=substring(donnee from 171 for 4);
   

INSERT INTO rsa (num_finess, num_vers_rsa, num_index_rsa , num_vers_rssgpe ,num_vers_genrsa, Gpgelu_vers_classif, gpgelu_ghm_Cmd, Gpgelu_ghm_Type ,gpgelu_ghm_Num, gpgelu_ghm_Cplexite,
                    Gpgelu_code_retour ,Gpgegenrsa_vers_classif ,Gpgegenrsa_ghm_Cmd,gpgegenrsa_ghm_Type,gpgegenrsa_ghm_num , gpgegenrsa_ghm_Cplexite, Gpgegenrsa_code_retour,
                    nb_rum_rss_orig ,age_en_annee ,age_en_jour, Sexe ,mode_entree_pmsimco ,Provenance ,mois_sortie ,annee_sortie ,mode_sortie_pmsimco, Destination, type_sej,
                    duree_total_sej_pmsi,code_geog_res,poids_entree,nb_seance ,Igs2 ,  num_ghs_ghmgenrsa,
                    nb_jne_sup_bor_extr_haute , sej_inf_bor_extr_basse ,
                    forfait_dialyse, nb_sup_hem_hseance ,
                    nb_sup_entr_dia_per_auto_hseance,
                    nb_sup_entr_dia_per_cont_amb_hseance, nb_sup_entr_hem_hseance ,
                    nb_seance_avt_sros,
                    nb_acte_men_ghm24z05z , nb_acte_men_ghm24z06z ,                                           
                    nb_acte_men_ghm24z07z,
                    nb_sup_caisson_hyperbare ,type_prest_prelv_org , nb_sup_sra_rean , nb_sup_rea_rean ,
                    nb_sup_soin_int_prov_rean , nb_sup_stf , nb_sup_ssc , nb_sup_src,nb_sup_nn1 ,nb_sup_nn2 ,nb_sup_nn3,Pge_lit_dedie_soin_pal ,Dp , Dr, nb_diag_ass_sig_rsa, nb_zone_acte_rsa )
                   
                                                   values (a, b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,ab,ac,ad,ae,af,ag,ah,
                                                   ai,aj,ak,al,am,an,ao, ap,aq,ar,as,at,au,av,aw,ax,ay,az,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);   
   return;
                                               
END;
$BODY$
LANGUAGE plpgsql ;

create or replace function importer_um (donnee text) returns void as      --fonction qui importe 1 um dans la table unité_médicale
$BODY$
declare
   -- declaration des variables
   a character varying(2);
   b character varying(3);
   c character varying(1);
   d character varying(1);
   e character varying(2);

begin
   -- soustraction des sous chaines et leur affectation aux variables
   a:= substring (donnee_um from 1 for 2);
   b:= substring (donnee_um from 3 for 3);
   c:= substring (donnee_um from 6 for 1);
   d:= substring (donnee_um from 7 for 1);
   e:= substring (donnee_um from 8 for 2);
   insert into unite_medicale (type_um , dur_sej_part , val_rea , val_part, position_dp )  values (a, b, c, d, e);

END;
$BODY$
LANGUAGE plpgsql ;


create or replace function importer_diag (donnee_diag text ) returns void as --fonction qui importe 1 um dans la table unité_médicale
$BODY$
declare  -- declaration des variables
     liste varchar (6); 
begin
    -- soustraction des sous chaines et leur affectation aux variables
    liste:=substring(donnee_diag from 1 for 6 );

  insert into diagnostique (liste_code_diagnostique )  values (liste);
                                                                                                                                                             
return;                     
END;
$BODY$
LANGUAGE plpgsql ;


create or replace function importer_acte (donnee text) returns void as   --fonction qui importe 1 acte dans la table acte
$BODY$
declare -- declaration des variables
   a character varying(3);
   b character varying(7);
   c character varying(1) ;
   d character varying(1) ;
   e character varying(1);
   f character varying(4);
   g character varying(1);
   h character varying(1);
   i character varying(2);

begin
    -- soustraction des sous chaines et leur affectation aux variables
   a:= substring (donnee_acte from 1 for 3);
   b:= substring (donnee_acte from 4 for 7);
   c:= substring (donnee_acte from 11 for 1);
   d:= substring (donnee_acte from 12 for 1);
   e:= substring (donnee_acte from 13 for 1);
   f:= substring (donnee_acte from 14 for 4);
   g:= substring (donnee_acte from 18 for 1);
   h:= substring (donnee_acte from 19 for 1);
   i:= substring (donnee_acte from 20 for 2);

   insert into acte (delai_dep_dat_entree ,code_ccam , phase , activite, exten_doc,modificateur,remb_excep,ass_non_prevue,nb_exe_acte )  values (a, b, c, d, e,f,g,h,i);
return;
END;
$BODY$
LANGUAGE plpgsql ;



create or replace function  importer_pmsi (donnee_pmsi text ) returns varchar as
$BODY$
declare
    bloc_rsa character varying(174);    --données du rsa
    bloc_um character varying(891);     --données de l'ensemble des um
    bloc_diag character varying(594);   --données de l'ensemble des diagnostics
    bloc_acte character varying(209979);   --données de l'ensemble des actes
    nb_um Integer;   --nombre de um
    nb_diag Integer;  --nombre de diagnostics
    nb_acte Integer;  --nombre d'actes
    temp character varying(209979);      --variable temporaire
begin
   bloc_rsa:=substring(donnee_pmsi from 1 for 174);
   nb_um := CAST(substring(donnee_pmsi from 51 for 2) AS Integer);   --c'est le nombre de UM
   nb_diag := CAST(substring(donnee_pmsi from 169 for 2) AS Integer); -- c'est la nombre de diagnostic
   nb_acte := CAST(substring(donnee_pmsi from 171 for 4) AS Integer); --c'est la nombre d'actes

   bloc_um:=substring(donnee_pmsi from 175 for num_um*9);             --tous les blocs de données des um
   bloc_diag:=substring(donnee_pmsi from (175+num_um*9) for num_diag*6); --tous les blocs de  données  des diagnostics
   bloc_acte:=substring(donnee_pmsi from (175+num_um*9+num_diag*6) for num_acte*21); --tous les blocs de données des actes

   PERFORM importer_rsa(bloc_rsa);
   
   for l in 0..nb_um loop                           
     temp:= substring(bloc_um from (l*9+1) for 9)   
     importer_um(temp);
    end loop ; 

   for l in 0..nb_diag loop                         
       temp:= substring(bloc_diag from (l*6+1) for 6)   
      select importer_diag (temp);
   end loop ;                   

   for l in 0..nb_acte loop                         
       temp:= substring(bloc_acte from (l*21+1) for 21) 
       importer_acte(temp);                       
   end loop ;
  return varchar;

END;

$BODY$
LANGUAGE plpgsql ;

select importer_pmsi('01000840721300000000171110021024C30Z0001024C30Z00001033   28 0820068  00018440000000000080290000099990000000000000000000000000000000000000000000000000000000O039        000003  00123DP001JNJD00204      001001JNJD00201      001001DEQP00701      001');

merci beaucoup de votre aide , je galère là

#22 PL/pgSQL » appel fonction » 01/12/2008 13:10:59

bennkabazz
Réponses : 3

bonjour
comment appel-t-on une fonction en postgresql ? car j'ai ecrit une fonction 'importer_rsa' qui prend en paramètre un text et si l'appel au milieu d'une autre fonction qui prend egalment une chaine , elle plante . je l'appel comme ça : importer_rsa(chaine ici) . aidez moi svp
message d'erreur :

ERROR: syntax error at or near "importer_rsa"

merci de votre aide

#23 Re : Général » cle compose » 24/11/2008 10:25:44

oui , mais si on veut que ça soit pas toutes les valeurs des champs1 et de champs 2 , mais plutôt l'association d'une partie de chaque champs , comment on fait svp ?
merci pour la première aide

#25 Général » insertion des données dans les tables » 21/11/2008 18:23:00

bennkabazz
Réponses : 2

bonjour tout le monde
je dois découper chaque  ligne  de ce fichier dans mes tables (3) en tenant compte des tailles des champs ; mais le remplissage des deux  tables dépend des deux  champs se trouvant  dans l'autre table ; si la valeur de ces deux champs sont nulles , on rempli plus les deux tables , mais si elles sont egales à 2 par exemple , on rempli deux fois les deux tables en respectant la taille de leurs champs par un découpage , ainsi de suite ;
en plus la valeur de ces deux variables peut varier d'une ligne fichier à un autre .
ma question :
il est bien de passer par une requette sql  ou par une fonction pour faire ce genre de travaille ? donnez  moi un exemple svp dans le cas choisi .
voici l'exemple des lignes de fichier à traiter  6 lignes :


merci beaucoup de votre aide

01000840721300000000171110021024C30Z0001024C30Z00001033   28 0820068  00018440000000000080290000099990000000000000000000000000000000000000000000000000000000O039        000003  00123DP001JNJD00204      001001JNJD00201      001001DEQP00701      001
01000840721300000005921110010904M13Z0000904M13Z00001068   18 0220068  00138441000000000011200000099990000000000000000000000000000000000000000000000000000000J960        020003  01323DPC349  J439  000ZCQK00201      001006ZBQK00201      001000ZBQK00201      001
01000840721300000013761110031020Z04Z0001020Z04Z00001030   28 1220068  00028334000000000072520000199990000000000000000000000000000000000000000000000000000000Z502  F102  010002  00223DPZ608  000ZCQK00201      001000ZBQK00201      001
01000840721300000032591110031024M10Z0001024M10Z00001083   28 0920068  00008311000000000082720000099990000000000000000000000000000000000000000000000000000000R072        040004  00023DPZ955  E115  I10   Z958  000DZQM00601      001000ZBQK00201      002000DEQP00301      001000DEQP00701      001
01000840721300000035931110031024Z17Z0001024Z17Z00001060   18 1220068  00010600000000000083150000099990000000000000000000000000000000000000000000000000000000F100        010001  00123DPZ958  001MAQK00301      001
01000840721300000045171110021004M10V0001004M10V00003079   28 0520068  00078480000000000011140000099990000000000000000000000000000000000000000000010000000000I269        020003  00123DP0300124DP  00523DPC519  I10   000ZBQK00201      001000YYYY46701      001000ECQH01001      001

Pied de page des forums

Propulsé par FluxBB