sql >> Base de Datos >  >> RDS >> Oracle

Pruebas unitarias de declaraciones DDL que deben estar en una transacción

En primer lugar tengo que decir:mala idea hacerlo de esta manera. Por dos razones:

  1. Las conexiones se basan en el usuario. Eso significa que pierde en gran medida los beneficios de la agrupación de conexiones. Tampoco escala terriblemente bien. Si tiene 10.000 usuarios a la vez, estará continuamente abriendo y cerrando conexiones duras (en lugar de grupos de conexiones flexibles); y
  2. Como ha descubierto, crear y eliminar usuarios es DDL, no DML y, por lo tanto, pierde "transaccionalidad".

No estoy seguro de por qué ha elegido hacer esto, pero fuertemente le recomendamos que implemente usuarios en la aplicación y no en la capa de la base de datos.

En cuanto a cómo resolver su problema, básicamente no puede. Igual que si estuvieras creando una tabla o un índice en medio de tu secuencia.