10/02/2012, 23:05
|
| | | Fecha de Ingreso: octubre-2007 Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes Puntos: 85 | |
Respuesta: Consulta de relleno Esta puede ser un forma de hacerlo
Código:
SQL> create global temporary table t1 (
2 codigo number(8),
3 valor number(8,2)
4 )
5 /
Table created.
SQL> create table tablaprueba (
2 codigo number(8),
3 valor number(8,2)
4 )
5 /
Table created.
SQL> insert into tablaprueba
2 values (1,2.4)
3 /
1 row created.
SQL> insert into tablaprueba
2 values (3,4.6)
3 /
1 row created.
SQL> insert into tablaprueba
2 values (10,8.6)
3 /
1 row created.
SQL> declare
2 vCodigo number(8);
3 begin
4 for rec in (select
5 codigo,
6 nvl(lag(codigo,1,null) over (order by codigo desc),codigo+1) cod_ant,
7 valor
8 from tablaprueba order by codigo) loop
9 vCodigo := rec.codigo;
10 while (vCodigo < rec.cod_ant) loop
11 insert into t1 values (vCodigo, rec.valor);
12 vcodigo := vcodigo + 1;
13 end loop;
14 end loop;
15 end;
16 /
PL/SQL procedure successfully completed.
SQL> select * from t1
2 /
CODIGO VALOR
---------- ----------
1 2.4
2 2.4
3 4.6
4 4.6
5 4.6
6 4.6
7 4.6
8 4.6
9 4.6
10 8.6
10 rows selected.
Saludos |