Je voudrais savoir pourquoi le code suivant:
affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 begin DBMS_OUTPUT.PUT_LINE(LPAD('A',10)); end;
au lieu de :
merci
@+SALI
Je voudrais savoir pourquoi le code suivant:
affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 begin DBMS_OUTPUT.PUT_LINE(LPAD('A',10)); end;
au lieu de :
merci
@+SALI
pour moi ça fonctionne correctement...
avec quel outil ? quelle version de Oracle ?
9i et SQLPLUS
en essayant :
j'obtien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 begin DBMS_OUTPUT.PUT_LINE(LPAD('A',10,'-')); end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part ---------A
Doc : http://download-east.oracle.com/docs...htm#SQLRF00663
Le 1er paramètre est la chaine a compléter (à gauche vu qu'il s'agit de LPAD; mais à droite si on parle de RPAD)
Le 2nd paramètre est la longueur finale attendue (après complétion)
[Le 3ème paramètre est le caractère qui doit être utilisé pour compléter la chaine passée en premier paramtère
Ce 3ème paramètre est facultatif; sa valeur par défaut est <ESPACE>]
[EDIT]
Attention : DBMS_OUTPUT, (tout comme la fonction echo sous certains unix) fait automatiquement un TRIM de la chaine, supprimant alors les espaces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SQL> begin 2 dbms_output.put_line( LPAD('A', 10) ); 3 end; 4 / A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SQL> begin 2 dbms_output.put_Line('*' || LPAD('A', 10) || '*'); 3 end; 4 / * A*Ce n'est donc pas LPAD qui est en cause, mais DBMS_OUTPUT ! ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SQL> select LPAD('A', 10) from dual; LPAD('A',1 ---------- A
[/EDIT]
est ce qu'il y a un moyen pour eviter que le TRIM effecuter par DBMS.OUTPUT
set serverout on for wra
Partager