InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial PL/SQL
Introducción a PLSQL
Programación con PL/SQL
Fundamentos de PL/SQL
Tipos de datos en PL/SQL
Operadores en PL/SQL
Estructuras de control en PL/SQL
Bloques PL/SQL
Cursores en PL/SQL
Cursores Implicitos en PL/SQL
Cursores Explicitos en PL/SQL
Cursores de actualización en PL/SQL
Excepciones en PL/SQL
Excepciones personalizadas en PL/SQL
Propagacion de excepciones en PL/SQL
Subprogramas en PL/SQL
Procedimientos almacenados en PL/SQL
Funciones en PL/SQL
Triggers en PL/SQL
Subprogramas en bloques anónimos
Paquetes en PL/SQL
Registros PL/SQL
Tablas PL/SQL
Tipo VARRAY
BULK COLLECT
Transacciones con PL/SQL
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Secuencias
PL/SQL y Java
También puedes ver ...
Excepciones personalizadas en PL/SQL
Como conectar a ORACLE con Java
Recuperar datos BLOB de ORACLE
Trabajar con datos de tipo BLOB en ORACLE
PL/SQL y Java
Secuencias
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Transacciones con PL/SQL

Afiliados
La Web del programador
MundoProgramacion


 

Cursores de actualización

Declaración y utiización de cursores de actualización.

    Los cursores de actualización se declarán igual que los cursores explicitos, añadieno FOR UPDATE al final de la sentencia select.


CURSOR nombre_cursor IS instrucción_SELECT
FOR UPDATE

   Para actualizar los datos del cursor hay que ejecutar una sentencia UPDATE especificando la clausula WHERE CURRENT OF <cursor_name>.


UPDATE <nombre_tabla> SET
<campo_1> = <valor_1>
[,<campo_2> = <valor_2>]
WHERE CURRENT OF <cursor_name>

    El siguiente ejemplo muestra el uso de un cursor de actualización:


DECLARE
CURSOR cpaises IS
select CO_PAIS, DESCRIPCION, CONTINENTE
from paises
FOR UPDATE;
co_pais VARCHAR2(3);
descripcion VARCHAR2(
50);
continente VARCHAR2(
25);
BEGIN
OPEN cpaises;
FETCH cpaises INTO co_pais,descripcion,continente;
WHILE cpaises%found
LOOP
UPDATE PAISES
SET CONTINENTE = CONTINENTE || '.'
WHERE CURRENT OF cpaises;

FETCH cpaises INTO co_pais,descripcion,continente;
END LOOP;
CLOSE cpaises;
COMMIT;

END;

    Cuando trabajamos con cursores de actualización debemos tener en cuenta las siguientes consideraciones:

  • Los cursores de actualización generan bloqueos en la base de datos.

 


Inicio | Tutorial PL/SQL Cursores Explicitos en PL/SQLTutorial PL/SQLExcepciones en PL/SQL Versión para imprimir Foros de consulta

 
No entiendo el final por Luis
Respuesta recibida el [29/11/2007 07:58:07]
Cuando trabajamos con cursores de actualización debemos tener en cuenta las siguientes consideraciones:

* Los cursores de actualización generan bloqueos en la base de datos.

¿Que quieres decir con esto, Pedro?

 
RE:No entiendo el final por Luis por martin g.
Respuesta recibida el [10/01/2008 07:12:20]
Luis, los cursores for update, bloquean las rows sobre las que actúan. Entonces, no se puede acceder a esas rows.--- 
FOR UPDATE options
This is often used within SL/SQL routines to lock the selected rows.
Oracle will wait for any locks to be released unless you specify NOWAIT

FOR UPDATE [OF [ [schema.]{table|view}.] column] [NOWAIT]


Undocumented syntax:

SELECT... FOR UPDATE SKIP LOCKED

Skip Locked will return all the 'non-locked' rows and lock them. While this syntax can be used effectively, it is generally not a good idea to use it within an application as undocumented syntax may be removed or changed in future releases.

 
tiempo de bloqueo por Fany
Respuesta recibida el [13/03/2008 03:12:11]
HOLAA!!
Siguiendo la pregunta de los bloqueos, por cuanto tiempo se realiza el bloqueo de las rows? este se realiza un tiempo determinado o solo mientras dura la ejecución de la sentencia Update?

 
Tiempo Bloqueo por Doro
Respuesta recibida el [17/03/2008 01:28:09]
Dura mientras se ejecuta la sentencia

 
bloqueo por Betty
Respuesta recibida el [12/05/2008 12:32:32]
Hola, como hago si en una forma estoy ejecutando un campo de la tabla de S a N, yo uso en la forma el post y al final uso el commit, pero antes de hacer el commit entra otro proceso que pregunta por el campo que estoy actualizando en la forma como no he hecho el commit va a ver el dato anterior y hace lo que tiene que hacer y hace que en la forma me presente al final un # de operacion que no es la que estaba actualizando.


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial PL/SQL Cursores Explicitos en PL/SQLTutorial PL/SQLExcepciones en PL/SQL Versión para imprimir

Cursores de actualización en PL/SQL
Autor: Pedro Herrarte Sánchez
Visitas: 44358 Fecha de publicación: 01/06/2006
Pedro Herrarte, es consultor independiente, ofreciendo sercivios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 131 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|ADO.NET
27/09/2008 Navegando ....
Visitas: 56 | Comentarios: 0 | Archivo: Articulos
Categorias: Humor
Visitas: 172 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|WCF
Visitas: 705 | Comentarios: 0 | Archivo: Articulos
Categorias: C#
Visitas: 176 | Comentarios: 0 | Archivo: Articulos
Categorias: JavaScript|ASP.NET
Visitas: 618 | Comentarios: 0 | Archivo: Articulos
Categorias: Windows XP|Linux|Windows Vista
Visitas: 404 | Comentarios: 0 | Archivo: Articulos
Categorias: Linux|BSD
Visitas: 213 | Comentarios: 0 | Archivo: Articulos
Categorias: Programación|Actualidad
18/08/2008 SQL Server 2008
Visitas: 1029 | Comentarios: 1 | Archivo: Articulos
Categorias: Transact-SQL
Visitas: 727 | Comentarios: 0 | Archivo: Articulos
Categorias: C#|ADO.NET|LinQ

Útimos temas recibidos en los foros ...
Crear una sesion de inicio por jhors ... [ASP.NET] 1 06/10/2008
Enviar email a correos cmo hotmail por Cajami ... [C#] 13 06/09/2007
Como mandar mensaje a Celular por Pako ... [C#] 23 13/03/2007
Casting por sara ... [Java] 1 06/10/2008
ORA-22288: file or LOB operation GetLength failed por heroga ... [ORACLE] 1 05/08/2008
Galeria de imagenes en Visual Web Developer por luis ... [ASP.NET] 0 06/10/2008
utilizar un ObjectDataSource por mari90 ... [ASP.NET] 4 25/10/2006
Llamar procedimientos almacenados por elmago ... [C#] 1 04/10/2008
Procesos huerfanos por cesarf283 ... [SQL Server] 2 11/07/2007
numero autogenerado por lucho ... [Visual Basic .NET] 17 10/01/2007
PUNTO DE VENTA por TIBURON ... [Access] 0 04/10/2008
Curso Visual Basic .NET en vídeo por martaz ... [Visual Basic .NET] 4 08/11/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
01/08/2007 Actualizar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
06/09/2006 ¿Qué es el Collation en SQL ?
12/01/2006 Programación con PL/SQL    forma parte de...Tutorial PL/SQL
20/07/2006 Transacciones con PL/SQL    forma parte de...Tutorial PL/SQL
23/09/2008 Migración de WSE a WCF (Web Services de 2005 a 2008)
22/10/2005 Vistas    forma parte de...Tutorial SQL
10/06/2007 Multiples escritorios en Windows XP
19/10/2005 Configurar el IIS para ejecutar aplicaciones ASP.net
21/07/2007 Insertar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
28/06/2006 Excepciones en PL/SQL    forma parte de...Tutorial PL/SQL

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]