| Voir le sujet précédent :: Voir le sujet suivant | 
	
	
		| Auteur | Message | 
	
		| pthierry Pro
 
  
 
 Inscrit le: 27 Fév 2003
 Messages: 455
 Localisation: Paris 13
 
 | 
			
				|  Posté le: 23 Jan 2005 12:10    Sujet du message: |   |  
				| 
 |  
				|  	  | Lya a écrit: |  	  | Je voudrais essayer de mettre automatiquement le "surplus" du champ Description dans les notes avant de le couper à 60 caractères... 
 J'ai essayé ça, mais ça bloque ! Où est mon erreur ?
   
 update  EVENEMENTS_IND
 set  EV_IND_COMMENT = concat (EV_IND_COMMENT , '   ', substr (EV_IND_DESCRIPTION, 60))
 where strlen (EV_IND_DESCRIPTION) > 60
 | 
 
 rappel
 EV_IND_COMMENT est un Blob de type texte
 EV_IND_DESCRIPTION est un varchar de 90
 attention le langage SQL bien que standardisé n'est pas tout à fait identique dans chaque base de données
 je vois 2 erreurs dans ta requete
 la concaténation :  || 2 barres  parallèles  (touches Alt Gr + touche num 6)
 et substr :
 Functional description:
 substr(s,m,n) returns the substring f s which starts at position m and
 ending at position n.
 
 ce qui donnerait quelquechose comme ça
 set EV_IND_COMMENT = EV_IND_COMMENT ||' '|| substr (EV_IND_DESCRIPTION,1,10)
 le malheur c'est que EV_IND_COMMENT est un Blob et on ne peut pas concaténer un blob avec un autre ou une chaîne de caractères
 _________________
 N'oubliez pas la fonction Rechercher...
 Cordialement  Pierre
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Lya Pro
 
  
  
 Inscrit le: 30 Juil 2003
 Messages: 945
 Localisation: Seine-et-Marne (77)
 
 | 
			
				|  Posté le: 23 Jan 2005 17:28    Sujet du message: |   |  
				| 
 |  
				|  	  | macpc a écrit: |  	  | Bonsoir Amandine 
 Ton truc m'interesse!
 | 
 Ah oui, quelle coïncidence ! ?!
       
 
  	  | pthierry a écrit: |  	  | rappel
 EV_IND_COMMENT est un Blob de type texte
 EV_IND_DESCRIPTION est un varchar de 90
 attention le langage SQL bien que standardisé n'est pas tout à fait identique dans chaque base de données
 je vois 2 erreurs dans ta requete
 la concaténation : || 2 barres parallèles (touches Alt Gr + touche num 6)
 et substr :
 Functional description:
 substr(s,m,n) returns the substring f s which starts at position m and
 ending at position n.
 | 
 
 Merci pour les explications Pierre !
  J'ai une autre question de débutante  : 
 par chance, pour tous mes individus "à problème", le champ notes était vide, donc j'ai simplement transféré le contenu de EV_IND_DESCRIPTION dans EV_IND_COMMENT avec cette procédure :
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_COMMENT = EV_IND_DESCRIPTION
 where strlen (EV_IND_DESCRIPTION) > 59
 | 
 
 maintenant, je voudrais vider le contenu de ces champs EV_IND_DESCRIPTION mais j'ai des problèmes avec la fonction  DELETE...
 j'ai essayé ça la place, mais ce n'est pas pareil, n'est-ce pas ?
   
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = ''
 where strlen (EV_IND_DESCRIPTION) > 59
 | 
 
 Pour le problème des blobs, si j'ai bien compris, on ne peut pas manipuler leur contenu, donc il faudrait l'extraire puis le réinjecter ?
   
 Bonne chance aux Pros !
  _________________
 
   Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Gvx Spécialiste
 
  
  
 Inscrit le: 27 Déc 2004
 Messages: 32
 Localisation: Moselle (57)
 
 | 
			
				|  Posté le: 23 Jan 2005 18:38    Sujet du message: |   |  
				| 
 |  
				| Bonjour Amandine, 
 pour vider le champ EV_IND_DESCRIPTION je pense que tu peux utiliser la procedure suivante:
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = NULL
 where strlen (EV_IND_DESCRIPTION) > 59
 
 | 
 qui permettra de remettre le champ a l'etat initial.
 
 Si tu as deja executer la requete suivante:
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = ''
 where strlen (EV_IND_DESCRIPTION) > 59
 | 
 il faudra utiliser cette procedure:
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = NULL
 where EV_IND_DESCRIPTION =''
 
 | 
 Je n'ai pas verifier l'efficacité de cette derniere.
 _________________
 A+ Gilles
 Les petites histoires qui ont fait la grande histoire en Moselle
 La généalogie de la famille
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| pthierry Pro
 
  
 
 Inscrit le: 27 Fév 2003
 Messages: 455
 Localisation: Paris 13
 
 | 
			
				|  Posté le: 23 Jan 2005 20:31    Sujet du message: |   |  
				| 
 |  
				|  	  | Lya a écrit: |  	  | par chance, pour tous mes individus "à problème", le champ notes était vide, donc j'ai simplement transféré le contenu de EV_IND_DESCRIPTION dans EV_IND_COMMENT avec cette procédure :
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_COMMENT = EV_IND_DESCRIPTION
 where strlen (EV_IND_DESCRIPTION) > 59
 | 
 
 maintenant, je voudrais vider le contenu de ces champs EV_IND_DESCRIPTION mais j'ai des problèmes avec la fonction  DELETE...
 j'ai essayé ça la place, mais ce n'est pas pareil, n'est-ce pas ?
   
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = ''
 where strlen (EV_IND_DESCRIPTION) > 59
 | 
 
 
 | 
 
 pour la 1ère requete : la mise à jour a du se faire pour ts les individus
 même si le champ notes était plein
  (il écrase les données existantes) pour le delete  : il sert à supprimer des enregistrements
 
  heureusement que ça n'a pas fonctionné sinon ta table evenements_ind aurait été vidée  du nettoyage par le vide si tu veux vider le contenu d'un champ c'est encore un update et le mieux c'est la remise à null
 _________________
 N'oubliez pas la fonction Rechercher...
 Cordialement  Pierre
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Lya Pro
 
  
  
 Inscrit le: 30 Juil 2003
 Messages: 945
 Localisation: Seine-et-Marne (77)
 
 | 
			
				|  Posté le: 10 Fév 2005 03:15    Sujet du message: |   |  
				| 
 |  
				| Juste un petit mot (avec bcp de retard) pour vous remercier de vos explications Gilles & Pierre !   
 Pas trop le temps de continuer mes expérimentations sql-iennes en ce moment, donc ... la suite de mes aventures, plus tard !
    _________________
 
   Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Lya Pro
 
  
  
 Inscrit le: 30 Juil 2003
 Messages: 945
 Localisation: Seine-et-Marne (77)
 
 | 
			
				|  Posté le: 14 Fév 2005 12:31    Sujet du message: |   |  
				| 
 |  
				| Bonjour à tous   
 J'ai encore 1 question !
  En tapant : 
 update EVENEMENTS_IND
 set  EV_IND_DESCRIPTION  = substr(EV_IND_DESCRIPTION, 1, 59)
 where strlen (EV_IND_DESCRIPTION) > 59
 
 j'obtiens encore un message d'erreur (même chose sans la condition strlen d'ailleurs).
 Qu'est-ce qui ne va pas cette fois  ?
  _________________
 
   Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Gvx Spécialiste
 
  
  
 Inscrit le: 27 Déc 2004
 Messages: 32
 Localisation: Moselle (57)
 
 | 
			
				|  Posté le: 14 Fév 2005 22:57    Sujet du message: |   |  
				| 
 |  
				| Bonsoir Amandine, 
 Je viens de tester la requete suivante adaptée a ma base de test
 
  	  | Code: |  	  | update EVENEMENTS_IND set EV_IND_DESCRIPTION = substr(EV_IND_DESCRIPTION, 1, 10)
 where strlen (EV_IND_DESCRIPTION) > 10 and EV_IND_KLE_DOSSIER =9
 
 | 
 
 Je n'ai aucun message d'erreur et la requete execute bien la tache demandée.
 
 Peux tu preciser la nature du message d'erreur obtenu.
 _________________
 A+ Gilles
 Les petites histoires qui ont fait la grande histoire en Moselle
 La généalogie de la famille
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		| Lya Pro
 
  
  
 Inscrit le: 30 Juil 2003
 Messages: 945
 Localisation: Seine-et-Marne (77)
 
 | 
			
				|  Posté le: 16 Fév 2005 01:30    Sujet du message: |   |  
				| 
 |  
				| Bonsoir Gilles   
 Merci beaucoup pour ta réponse !!!
       
 J'ai réussi à comprendre le pourquoi du comment...
  : En fait, j'obtenais le message type "Erreur lors de l'accès aux données", blocage d'Ancestro à la sortie du Bois (pardon BOA
  ) et arrêt du programme via le Gestionnaire des tâches. 
 Comme tu y arrivais, je me suis dit qu'il y avait un problème avec ma base et effectivement, en essayant avec une base "propre", ça marche parfaitement.
 
 Finalement, j'ai réussi à localiser l'origine du blocage dans un dossier de test qui me servait justement à tester ces erreurs de type "Mismatch..."
 Je pense que c'est parce que j'ai forcé la valeur à + de 60 caractères au départ, ou... c'est autre chose...  J'ai un peu malmené cette pauvre base je crois !
      _________________
 
   Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
 |  | 
	
		| Revenir en haut |  | 
	
		|  | 
	
		|  |