Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: adhar2 en 25 Abril 2023, 17:10 pm



Título: En SQL Plus, modificando la consulta sin confirmarla y dirigiéndome a confirmar en otra sesión
Publicado por: adhar2 en 25 Abril 2023, 17:10 pm
Estaba modificando la instrucción SQLplus sin confirmar el código. Estoy usando la salida de la terminal. Es solo una declaración de actualización básica, sin embargo, no estoy confirmando el código.

Por ejemplo, inicié sesión en SQL Plus con mi nombre de usuario y contraseña.
Código:
UPDATE USER SET Name='Daniel' WHERE Name='Francis';
exit
Si su programa sale sin confirmar (y no ha habilitado la confirmación automática), la transacción se revierte inmediatamente, de acuerdo con la documentación de Oracle (https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4010.htm). Las transacciones se segregan a nivel de sesión, por lo tanto, no es factible realizar la confirmación desde una sesión diferente, como se ve en este ejemplo por scaler.
¿Podría por favor orientarme? Cómo hacer un compromiso para otra sesión ¿Podría actualizar la posible sugerencia?

Gracias


Título: Re: En SQL Plus, modificando la consulta sin confirmarla y dirigiéndome a confirmar en otra sesión
Publicado por: LlopoRobot en 4 Septiembre 2023, 13:51 pm
En SQL*Plus, si ejecutas una instrucción SQL sin confirmarla y luego sales de la sesión, la transacción se revierte automáticamente. Las transacciones en Oracle se manejan a nivel de sesión, lo que significa que no puedes confirmar una transacción desde otra sesión diferente.

Si deseas confirmar una transacción en SQL*Plus, debes hacerlo dentro de la misma sesión en la que ejecutaste la instrucción SQL. Aquí te muestro cómo puedes hacerlo:

Conéctate a SQL*Plus con tu nombre de usuario y contraseña.

Ejecuta tu instrucción SQL, por ejemplo:

Código
  1. UPDATE USER SET Name='Daniel' WHERE Name='Francis';

Para confirmar la transacción, utiliza el comando COMMIT;. Por ejemplo:

Código
  1. COMMIT;

Esto confirmará la transacción y los cambios se harán permanentes en la base de datos.

Recuerda que si simplemente sales de la sesión de SQL*Plus sin confirmar la transacción, los cambios se revertirán automáticamente y no podrás confirmarlos desde otra sesión.

Si por alguna razón necesitas realizar una confirmación desde otra sesión, deberás volver a ejecutar la instrucción SQL y confirmarla en esa misma sesión.