SQL - pedir datos al usuario dentro de un ciclo for

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 35 puestos en SQL (en relación al último mes)
Gráfica de SQL

pedir datos al usuario dentro de un ciclo for

Publicado por Alan Gerardo (1 intervención) el 01/10/2020 02:57:26
quiero crear una matriz con plsql pero que pida los datos al usuario, trate de usar promts dentro del ciclo for pero no los agarra mi unica solucion fue crear varios prompts pero eso esta mal como puedo hacer que pida datos sin usar tantos promts

este es mi codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
SET SERVEROUTPUT ON;
SET VERIFY OFF;
 
accept fila111 prompt " inserta un valor 1, 1, 1: ";
accept fila112 prompt " inserta un valor 1, 1, 2: ";
accept fila113 prompt " inserta un valor 1, 1, 3: ";
accept fila121 prompt " inserta un valor 1, 2, 1: ";
accept fila122 prompt " inserta un valor 1, 2, 2: ";
accept fila123 prompt " inserta un valor 1, 2, 3: ";
accept fila131 prompt " inserta un valor 1, 3, 1: ";
accept fila132 prompt " inserta un valor 1, 3, 2: ";
accept fila133 prompt " inserta un valor:1, 3, 3: ";
 
accept fila211 prompt " inserta un valor 1, 1, 1: ";
accept fila212 prompt " inserta un valor 2, 1, 2: ";
accept fila213 prompt " inserta un valor 2, 1, 3: ";
accept fila221 prompt " inserta un valor 2, 2, 1: ";
accept fila222 prompt " inserta un valor 2, 2, 2: ";
accept fila223 prompt " inserta un valor 2, 2, 3: ";
accept fila231 prompt " inserta un valor 2, 3, 1: ";
accept fila232 prompt " inserta un valor 2, 3, 2: ";
accept fila233 prompt " inserta un valor 2, 3, 3: ";
 
accept fila311 prompt " inserta un valor 3, 1, 1: ";
accept fila312 prompt " inserta un valor 3, 1, 2: ";
accept fila313 prompt " inserta un valor 3, 1, 3: ";
accept fila321 prompt " inserta un valor 3, 2, 1: ";
accept fila322 prompt " inserta un valor 3, 2, 2: ";
accept fila323 prompt " inserta un valor 3, 2, 3: ";
accept fila331 prompt " inserta un valor 3, 3, 1: ";
accept fila332 prompt " inserta un valor 3, 3, 2: ";
accept fila333 prompt " inserta un valor 3, 3, 3: ";
 
prompt'___________Matriz 3x3_____________';
DECLARE
 
BEGIN
 
FOR caras IN 1..3 LOOP
        DBMS_OUTPUT.PUT_LINE('----___----___----___---');
        DBMS_OUTPUT.PUT_LINE('CARA: '||caras);
 
     FOR filas IN 1..3  LOOP
          DBMS_OUTPUT.PUT('FILA :  '||filas);
                      IF filas=1 THEN
                          DBMS_OUTPUT.PUT(chr(7)||'   ');
                      END IF;
                      IF filas=2 THEN
                          DBMS_OUTPUT.PUT(chr(7)||' ');
                      END IF;
                      IF filas=3 THEN
                          DBMS_OUTPUT.PUT(chr(7)||'   ');
                      END IF;
 
           FOR columnas IN 1..3  LOOP
 
                IF (columnas=1 AND filas=1 AND caras=1) THEN
                DBMS_OUTPUT.PUT_LINE('&fila111'||'   '||'&fila112'||'   '||'&fila113');
                END IF;
                IF (columnas=2 AND filas=2 AND caras=1) THEN
                DBMS_OUTPUT.PUT_LINE('  '||'&fila121'||'   '||'&fila122'||'   '||'&fila123');
                END IF;
                IF (columnas=3 AND filas=3 AND caras=1) THEN
                DBMS_OUTPUT.PUT_LINE(''||'&fila131'||'   '||'&fila132'||'   '||'&fila133');
                END IF;
 
                IF (columnas=1 AND filas=1 AND caras=2) THEN
                DBMS_OUTPUT.PUT_LINE('&fila211'||'   '||'&fila212'||'   '||'&fila113');
                END IF;
                IF (columnas=2 AND filas=2 AND caras=2) THEN
                DBMS_OUTPUT.PUT_LINE('  '||'&fila221'||'   '||'&fila222'||'   '||'&fila223');
                END IF;
                IF (columnas=3 AND filas=3 AND caras=2) THEN
                DBMS_OUTPUT.PUT_LINE(''||'&fila231'||'   '||'&fila232'||'   '||'&fila233');
                END IF;
 
                IF (columnas=1 AND filas=1 AND caras=3) THEN
                DBMS_OUTPUT.PUT_LINE('&fila311'||'   '||'&fila312'||'   '||'&fila313');
                END IF;
                IF (columnas=2 AND filas=2 AND caras=3) THEN
                DBMS_OUTPUT.PUT_LINE('  '||'&fila321'||'   '||'&fila322'||'   '||'&fila323');
                END IF;
                IF (columnas=3 AND filas=3 AND caras=3) THEN
                DBMS_OUTPUT.PUT_LINE(''||'&fila331'||'   '||'&fila332'||'   '||'&fila333');
                END IF;
 
 
                       END LOOP;
 
                    DBMS_OUTPUT.PUT_LINE('   ');
                  END LOOP;
 
                  DBMS_OUTPUT.PUT_LINE('   ');
                END LOOP;
END;
/
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder