Hallé la idea para este ejemplo aquí.
En Oracle 12.1 se puede emplear una secuencia para poner un valor predeterminado en una columna de una tabla. Aquí está un ejemplo sencillo que acabo de crear:
En Oracle 12.1 se puede emplear una secuencia para poner un valor predeterminado en una columna de una tabla. Aquí está un ejemplo sencillo que acabo de crear:
SQL> create sequence seq1
2 /
Sequence created.
SQL> create table tab1
2 (col1 number default seq1.nextval,
3 col2 varchar2(10))
4 /
Table created.
SQL> insert into tab1(col2) values('Andrew')
2 /
1 row created.
SQL> insert into tab1(col2) values('Brian')
2 /
1 row created.
SQL> select * from tab1 order by col1
2 /
COL1 COL2
---------- ------------------------------
1 Andrew
2 Brian
SQL>
2 /
Sequence created.
SQL> create table tab1
2 (col1 number default seq1.nextval,
3 col2 varchar2(10))
4 /
Table created.
SQL> insert into tab1(col2) values('Andrew')
2 /
1 row created.
SQL> insert into tab1(col2) values('Brian')
2 /
1 row created.
SQL> select * from tab1 order by col1
2 /
COL1 COL2
---------- ------------------------------
1 Andrew
2 Brian
SQL>
Pero si usted intenta utilizar
INSERT ALL para crear dos (o más de dos) filas simultáneamente,
Oracle pone el mismo valor predeterminado en cada fila. Aquí está un
ejemplo para mostrarle a usted lo que quiero decir:
SQL> insert all
2 into tab1(col2) values('Colin')
3 into tab1(col2) values('David')
4 select * from dual
5 /
2 rows created.
SQL> select * from tab1 order by col1
2 /
COL1 COL2
---------- ------------------------------
1 Andrew
2 Brian
3 Colin
3 David
SQL>
2 into tab1(col2) values('Colin')
3 into tab1(col2) values('David')
4 select * from dual
5 /
2 rows created.
SQL> select * from tab1 order by col1
2 /
COL1 COL2
---------- ------------------------------
1 Andrew
2 Brian
3 Colin
3 David
SQL>
14th October 2016:
Shared via LinkedIn