Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Imprimir un patron

Estas en el tema de Imprimir un patron en el foro de Oracle en Foros del Web. Hola a todos necesito crear un procedimiento que realize lo siguiente @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SQL > EXECUTE EJEMPLO ( 4 ) ; ...
  #1 (permalink)  
Antiguo 20/09/2015, 11:03
 
Fecha de Ingreso: mayo-2015
Mensajes: 23
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta Imprimir un patron

Hola a todos necesito crear un procedimiento que realize lo siguiente

Código SQL:
Ver original
  1. SQL>EXECUTE EJEMPLO(4);
  2. 1111
  3. 333
  4. 22
  5. 4

He intentado esto hasta ahora:
Código SQL:
Ver original
  1. SQL>CREATE OR REPLACE PROCEDURE EJEMPLO(N IN NUMBER)
  2. AS
  3. P VARCHAR(50);
  4. BEGIN
  5. FOR X IN REVERSE 1..N LOOP
  6. P:=' ';
  7. FOR B IN REVERSE 1..X LOOP
  8. P:=P|| TO_CHAR(X);
  9. END LOOP;
  10. DBMS_OUTPUT.PUT_LINE(P);
  11. END LOOP;
  12. END;
  13. /

Con eso solo obtengo este resultado

Código SQL:
Ver original
  1. SQL>EXECUTE EJEMPLO(4);
  2. 4444
  3. 333
  4. 22
  5. 1

No hallo la forma de comenzar imprimiendo varios 1 al inicio y que luego le siga el 2 y 3 respectivamente...
  #2 (permalink)  
Antiguo 21/09/2015, 14:51
 
Fecha de Ingreso: mayo-2015
Mensajes: 23
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Imprimir un patron

Pude resolverlo :D
Esta es la solución

Código SQL:
Ver original
  1. SQL>CREATE OR REPLACE PROCEDURE TERCERO(N IN NUMBER)
  2. AS P VARCHAR(50);
  3. K NUMBER:=N+1;
  4. BEGIN
  5. FOR X IN 1..N LOOP
  6. P:='';
  7. FOR Y IN REVERSE 1..N LOOP
  8. P:=P||TO_CHAR(X);
  9. END LOOP;
  10. K:=K-1;
  11. DBMS_OUTPUT.PUT_LINE(SUBSTR(P,1,K));
  12. END LOOP;
  13. END;
  14. /

Etiquetas: bucle, numeros, procedure, secuencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:04.