Migrar la Instrucción Update desde Sql Server a Oracle
Fecha: 04/Abr/2006 (04-Abr-2006)
|
En algunas ocasiones se necesita desarrollar aplicaciones conectadas a diversas plataformas de bases de datos. El caso más común es migrar procedimientos almacenados entre servidores Oracle y SQL Server.
Aquí tratare de migrar las dos clases más comunes de updates desde SQL Server a Oracle.
Nota: para los ejemplos se utiliza la base de datos Northwind de SQL Server.1. Update sencillo:
Update en SQL Serverupdate Customers set Region = 'Northern' where City = 'London'Migrado a Oracle:
UPDATE Customers SET Region = 'Northern' WHERE City = 'London';Esta clase de actualizaciones se migran fácilmente ya que no requieren modificaciones.
2. Update relacionado con otra tabla:
Update en SQL Serverupdate Orders set ShipRegion = 'Northern' from Orders o, Customers c where c.CustomerID = o.CustomerID and c.City = 'London'Migrado a Oracle:
Esta clase de actualizaciones requiere la creación de un cursor en Oracle, y luego ejecutar el Update dentro del cursor.--Declaración del cursor (En los procedimientos se realiza en la parte inicial, en la región de declaraciones) UF1_rowid ROWID; UF1_oval1 Orders.ShipRegion%TYPE; CURSOR UF1_cursor IS SELECT o.ROWID, 'Northern' FROM Orders o, Customers c WHERE c.CustomerID = o.CustomerID and c.City = 'London' FOR UPDATE OF o.ShipRegion; --Ejecución del cursor y actualización (en los procedimientos se escriben en la región del cuerpo) BEGIN OPEN UF1_cursor; LOOP FETCH UF1_cursor INTO UF1_rowid, UF1_oval1; EXIT WHEN UF1_cursor%NOTFOUND; UPDATE Orders o SET ShipRegion = UF1_oval1 WHERE ROWID = UF1_rowid; END LOOP; CLOSE UF1_cursor; END;