Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
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 02/07/2003, 13h53   #1
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
Par défaut maj 1ère lettre d'une chaine

ce que je voudrais faire c'est juste pour chaque prénom apres insertion mettre la premiere lettre du prénom en majuscule et tout le reste en miniscule

exemeple

prénom
---------

Robert
Arlette
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 14h48   #2
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
Affected Rows: 0
SQL-query:
Code :
1
2
3
4
5
6
7
8
9
CREATE FUNCTION "fctmajlettre "(varchar) RETURNS numeric AS 'declare
enr RECORD;
BEGIN
FOR enr in select * from patient loop
update patient set pre_patient = upper(enr.pre_patient[1]) 
where pre_patient = enr.pre_patient;
end loop;
return 1;
end;' LANGUAGE 'plpgsql'

j'ai essayé en utilisant [1] mais sa marche pas !


Modéré par stessy
Ajout de balises [code]
Prière de lire les règles du forum

Merci
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 14h52   #3
Invité de passage
 
Inscription : juillet 2003
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 6
Points : 4
Points : 4
essaye avec initcap à la place de upper

Code :
UPDATE patient SET pre_patient = initcap(enr.pre_patient)
Modéré par stessy
Ajout de balises [code]
Prière de lire les règles du forum

Merci

steelspirit92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 18h37   #4
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
non il n'y aucun changement que sa soit avec

Code :
SET pre_patient = initcap(enr.pre_patient[1])
ou avec

Code :
SET pre_patient = initcap(enr.pre_patient)
snif


Modéré par Stessy
Ajout de balises [code]
Prière de lire les règles du forum

Merci
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2003, 09h23   #5
Invité de passage
 
Inscription : juillet 2003
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 6
Points : 4
Points : 4
Pourtant initcap marche quand tu fais une requete à la main !
c'est surement ta fonction qui est fausse
moi je ferai un truc comme ça :

Code :
1
2
3
4
5
6
7
CREATE FUNCTION fctmajlettre_function() RETURNS TRIGGER
AS '
BEGIN
NEW.pre_patient := initcap(OLD.pre_patient);
RETURN NEW;
END;'
LANGUAGE 'plpgsql';
ensuite
Code :
1
2
3
4
5
CREATE TRIGGER fctmajlettre_trigger
BEFORE INSERT OR UPDATE
ON patient
FOR EACH ROW
EXECUTE PROCEDURE fctmajlettre_function();
je n'ai pas testé et je sais pas si ça peut marcher.

Bon courage

Modéré par Stessy
Ajout de balises [code]
Prière de lire les règles du forum

Merci
steelspirit92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2003, 12h27   #6
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
hélas sa ne marche toujours pas, pourtant c bete que avec upper et en isolant la première lettre avec [1] on ne puisse pas mettre en majuscule!
access001 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 04h03.


 
 
 
 
Partenaires

Hébergement Web