martes, 23 de junio de 2015

ORA-12838

Tras hacer un INSERT /*+ APPEND */, hay que ejecutar un COMMIT antes de leer o modificar la tabla. Si no lo haces, Oracle responde con un ORA-12838. Se puede ver lo que quiero decir en el ejemplo siguiente, que probé en Oracle 11.2:

SQL> create table tab1
  2  as select * from dba_tables
  3  where 1 = 2
  4  /
 
Table created.
 
SQL> insert /*+ append */ into tab1
  2  select * from dba_tables
  3  /
 
3163 rows created.
 
SQL> select count(*) from tab1
  2  /
select count(*) from tab1
                     *
ERROR at line 1:
ORA-12838: no se puede leer/modificar un objeto
después de modificarlo en paralelo
 
SQL> commit
  2  /
 
Commit complete.
 
SQL> select count(*) from tab1
  2  /
 
  COUNT(*)
----------
      3163
 
SQL>

En inglés

En francés 

30th October 2016:
Checked for relevance.
Shared on LinkedIn. 

No hay comentarios:

Publicar un comentario