• Publicidad

Búsqueda de caracteres

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Búsqueda de caracteres

Notapor Emstro » 2010-12-10 16:37 @734

La siguiente consulte se me cae en el while() y solo cuando busco una sola vocal, no entiendo por qué.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if (defined $dbh) {
  2.  
  3.         if (defined $dp_s) {
  4.  
  5.                 $sql = q/
  6.                                 SELECT    DP_CODE,
  7.                                           DP_NAME,
  8.                                           DP_STATUS,
  9.                                           DP_ISI_OFFICE,
  10.                                           DP_COUNTRY,
  11.                                           DP_FORMATTING_OFFICE,
  12.                                           LOCAL_DP_NAME
  13.                                 FROM      DP
  14.                                 WHERE     UPPER(DP_CODE)  LIKE ?
  15.                                    OR     UPPER(DP_NAME)  LIKE ?
  16.                         /;
  17.  
  18.  
  19.                 if ((defined $start) && (defined $end)) {
  20.                         $aux = $sql;
  21.                         $sql = undef;
  22.                         $sql = "Select * From (Select a.*, ROWNUM r From ($aux) a Where ROWNUM <= $end) Where r>=$start";
  23.                 }
  24.                 else {
  25.                         $start = 1;
  26.                         $end   = 50;
  27.                 }
  28.  
  29.  
  30.                 my $sth = $dbh->prepare($sql);
  31.                 $keywords = uc($keywords);
  32.                 $sth->execute("%$keywords%","%$keywords%");
  33.  
  34.                 my $cont=0;
  35.                 while (my $result = $sth->fetchrow_hashref) {
  36.                         $cont++;
  37.                         next if (($cont >= 51) && (!defined $total));
  38.                         push @DATA, $result;
  39.                 }
  40.  
  41.  
  42.                 $total = $sth->rows if (!defined $total);
  43.                 $end = $total  if ($end > $total);
  44.                 $sth->finish;
  45.         }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Saludos a todos los perleros de Chile, ¡je,je,je,je!
Emstro
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2010-11-08 16:12 @716

Publicidad

Re: Búsqueda de caracteres

Notapor explorer » 2010-12-10 19:24 @850

No estoy seguro, pero creo que en lugar de
Select * From (Select a.*, ROWNUM r From ($aux) a Where ROWNUM <= $end) Where r>=$start, es
Select * From (Select a.*, ROWNUM r From ($aux) a Where r <= $end) Where r>=$start

De todas maneras, esto de hacer una consulta en mitad de otra, no me gusta nada. ¿No es en estos casos donde habría que poner JOIN?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 22 invitados