Acho que entendi a questão, não tem nada a ver com o SUBSTR : pelo que entendo, 
o SUBSTR está funcionando 100%, trazendo apenas os 10 primeiros caracteres (ou 
os que existam, se a coluna for menor que 10 cacarcteres), MAS o que ocorre é 
que no sqlplus se vc não formatar ele assume como largura da coluna na tabela , 
tipo (num banco 11g) :

=> veja que ** não tenho ** formato definido para a coluna :

12:24:33 SYSTEM:@sdpr:SQL>column username
SP2-0046: COLUMN 'username' nÒo definido

=> faço a consulta :

12:26:06 SYSTEM:@sdpr:SQL>l
  1  select substrb(USERNAME,1,10) USERNAME,OSUSER,SID,SERIAL#,LAST_CALL_ET 
"ELAPSED",MACHINE
  2   FROM   V$SESSION
  3   WHERE (TYPE <> 'BACKGROUND')
  4   AND   (STATUS = 'ACTIVE')
  5*  ORDER BY ELAPSED DESC
12:26:09 SYSTEM:@sdpr:SQL>/

USERNAME                       OSUSER                            SID  SERIAL#   
 ELAPSED MACHINE
------------------------------ ------------------------------ ------ -------- 
---------- ----------------------------------------------------------------
SIST#                          CHIAPPA1967\X5001129             2087    21091   
    9643 CHIAPPA1967\WIN24
SIST#                          DCSYSTEMINT                      2514    22683   
     654 CHIAPPA1967\WIN0
SIST#                          DCSYSTEMINT                      1746    43987   
     105 CHIAPPA1967\WIN0
SIST#                          DCSYSTEMINT                      2707    27473   
      94 CHIAPPA1967\WIN0
                               SYSTEM                           1372    38497   
      55 WIN72
SIST#                          DCSYSTEMINT                       629    29395   
      54 CHIAPPA1967\WIN0
                               SYSTEM                           1374    39589   
      30 WIN72
                               SYSTEM                           1941    42845   
      24 WIN72
SIST#                          CHIAPPA1967\F2200237             1724    43379   
      10 CHIAPPA1967\NT937
SIST#                          CHIAPPA1967\X5000799             2327    26699   
       7 CHIAPPA1967\NT937
SIST#                          CHIAPPA1967\X5000506              996    20817   
       3 CHIAPPA1967\NT1147
SIST#                          CHIAPPA1967\F4402849             2698    45645   
       1 CHIAPPA1967\NT1150
SIST#                          CHIAPPA1967\X5000735              416    13491   
       0 CHIAPPA1967\NT1147
SYSTEM                         Y0623080                         1909    11409   
       0 CHIAPPA1967\01-14207D311327

14 linhas selecionadas.

==> acima, o SUBSTR ** FUNCIONOU 100% CORRETO **, mas o sqlplus, POR CONTA 
PRÓPRIA, sem formatação assumiu uma largura para a coluna... Agora VOU indicar 
que quero para a coluna uma largura de 10 :

12:26:15 SYSTEM:@sdpr:SQL>column username format a10
12:26:29 SYSTEM:@sdpr:SQL>l
  1  select substrb(USERNAME,1,10) USERNAME,OSUSER,SID,SERIAL#,LAST_CALL_ET 
"ELAPSED",MACHINE
  2   FROM   V$SESSION
  3   WHERE (TYPE <> 'BACKGROUND')
  4   AND   (STATUS = 'ACTIVE')
  5*  ORDER BY ELAPSED DESC
12:26:32 SYSTEM:@sdpr:SQL>/

USERNAME   OSUSER                            SID  SERIAL#    ELAPSED MACHINE
---------- ------------------------------ ------ -------- ---------- 
----------------------------------------------------------------
SIST#      CHIAPPA1967\X5001129             2087    21091       9660 
CHIAPPA1967\WIN24
SIST#      DCSYSTEMINT                      2514    22683        671 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                      1746    43987        122 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                      2707    27473        111 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                       629    29395         71 
CHIAPPA1967\WIN0
SIST#      CHIAPPA1967\X5000799             2327    26699         24 
CHIAPPA1967\NT937
SIST#      CHIAPPA1967\X5000506              996    20817         20 
CHIAPPA1967\NT1147
SIST#      DCSYSTEMINT                      1929    33667          5 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                      2294    48935          1 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                      1519    29621          0 
CHIAPPA1967\WIN0
SIST#      DCSYSTEMINT                       582    50161          0 
CHIAPPA1967\WIN0
SYSTEM     Y0623080                         1909    11409          0 
CHIAPPA1967\01-14207D311327

12 linhas selecionadas.

==> TÁ VENDO (se a formatação do yahoo!groups deixar:) como está com 10 
caracteres de largura a coluna ??? Pra mim é ISSO que vc está vendo aí : SUBSTR 
funcionando 100% certo mas sqlplus ASSUMINDO uma largura para a coluna e 
portando mostrado "brancos" na tela, yes ??

 []s

   Chiappa

Responder a