sql >> Database >  >> RDS >> Oracle

JDBC-verbinding standaard autoCommit-gedrag

Uit Oracle JDBC-documentatie:

Wanneer een verbinding tot stand wordt gebracht, bevindt deze zich in de modus voor automatisch vastleggen. Dit betekent dat elke individuele SQL-instructie wordt behandeld als een transactie en automatisch wordt vastgelegd direct nadat deze is uitgevoerd. (Om preciezer te zijn:de standaard is dat een SQL-instructie wordt vastgelegd wanneer deze is voltooid, niet wanneer deze wordt uitgevoerd. Een instructie is voltooid wanneer alle resultatensets en updatetellingen zijn opgehaald . In bijna alle gevallen wordt een instructie echter voltooid, en daarom vastgelegd, direct nadat deze is uitgevoerd.)

Het andere is - je hebt details over het maken van verbindingen weggelaten, dus ik gok maar - als je een aantal frameworks gebruikt, of een verbinding verwerft van een gegevensbron of verbindingspool, de autocommit kan worden uitgeschakeld off door die frameworks/pools/gegevensbronnen - de oplossing is om nooit te vertrouwen op standaardinstellingen;-)




  1. Tijd aftrekken formaat resultaat

  2. Probleem met tijdelijke RODBC-tabel bij verbinding met MS SQL Server

  3. Stel sleutel/waarde-paren in in de sessiecontext in SQL Server (sp_set_session_context)

  4. Retourneer een DML-triggertype op een tabel in SQL Server