23/04/2008, 01:11
|
| | Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses Puntos: 43 | |
Re: PL/SQL/Procedimiento: Invertir frase por palabras Mira, como veo que pones interés y lo que intentas es aprender y no que te lo dén mascado, te he hecho un pequeño ejemplo que solo dá la vuelta a la primera palabra, solo tienes que añadir alguna variable en el declare, y en el begin marcado con -- poner loop -- poner un bucle , un par de lineas de código y enseguida lo sacas.
Si lo ejecutas tal cual te lo pongo, el ultimo DBMS_OUTPUT.PUT_LINE te saca """ OCIREP """.
Te queda lo mas facil, ir desglosando la cadena principal tomando como punto de partida los espacios en blanco para sacar las substr's.
Suerte y ya nos contarás :
declare
cadena varchar2 (2200) := 'PERICO DE LOS PALOTES';
CADENA_TMP VARCHAR2(2200);
CADENA_TMP2 VARCHAR2(2200);
POSICION1 NUMBER;
POSICION1 NUMBER;
procedure revertir ( cadena_a_revertir in varchar2 , cadena_revertida out varchar2)
is
v_cadena2 varchar2(888);
v_longitud number;
begin
v_longitud := length(cadena_a_revertir);
loop
v_cadena2 := v_cadena2||substr(cadena_a_revertir,v_longitud,1);
v_longitud := v_longitud-1;
if v_longitud = 0 then
exit;
end if;
end loop;
cadena_revertida := v_cadena2;
end;
BEGIN -- poner loop --
CADENA_TMP := SUBSTR(CADENA,1,INSTR(CADENA,' '));
revertir(CADENA_TMP,CADENA_TMP2);
DBMS_OUTPUT.PUT_LINE(CADENA_TMP2);
END; |