Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays数据库迁移软件

Oracle %ROWTYPE到MySQL转换

Oracle %ROWTYPE参数提供记录类型表现行在数据库的表。如果您使用%ROWTYPE和如何列的类型改变或列数在表更改,您的应用的代码保持正确的和使用最新列和类型信息。提供数据独立从应用,并允许减少应用的维护代码。

MySQL没有Oracle %ROWTYPE的相等。在MySQL有必要声明变量为每个列。

SQLWays改变Oracle变量声明与%ROWTYPE参数到MySQL变量声明表有相同的名称和数据类型像列的名称和数据类型在数据库表。

如有以一场变量在记录在过程体,SQLWays改变它到适当的变量。如果有与变量的赋值语句使用%ROWTYPE在过程体,SQLWays改变赋值语句到赋值语句的表为每个变量。

转换的例如:

以下表 ora_rt包括二个列: NUMBER(10)的ID VARCHAR2(10)的名称

表格 22。 使用没有记录域引用棱型
Oracle
MySQL
CREATE PROCEDURE ORA_SP_ROWTYPE (ROW1 
OUT ora_rt%ROWTYPE) IS 
BEGIN 
   SELECT ID, Name 
      INTO ROW1 
      FROM ora_rt 
      WHERE ID = 1; 
END; 
CREATE PROCEDURE ORA_SP_ROWTYPE (OUT 
SWV_ROW1_ID INT, OUT SWV_ROW1_NAME VARCHAR(10))  
BEGIN 
	SELECT ID,Name 
INTO SWV_ROW1_ID,SWV_ROW1_NAME 
	FROM ora_rt 	WHERE ID = 1; 
END;/ 

别准:这个表格ora_rt 有二个列: ID of NUMBER(10)的IDVARCHAR2(10)的名称

表格 23。 使用%ROWTYPE参照记录中的字段。
Oracle
MySQL
CREATE PROCEDURE ora_sp_rowtype3  IS 
ROW1 ora_rt%ROWTYPE; 
BEGIN 
   ROW1.ID := 5; 
   ROW1.Name := 'Tenth'; 
INSERT INTO ora_rt values (ROW1.ID, ROW1.Name); 
END; 
CREATE PROCEDURE ORA_SP_ROWTYPE3() 
BEGIN 
   declare SWV_ROW1_ID INT; 
   declare SWV_ROW1_NAME VARCHAR(10); 
   SET SWV_ROW1_ID = 5; 
   SET SWV_ROW1_Name = 'Tenth'; 
   INSERT INTO ora_rt 
values(SWV_ROW1_ID,SWV_ROW1_Name); 
END;/ 

表格 24。  使用的记录分配棱型。
Oracle
MySQL
CREATE PROCEDURE ora_sp_rowtype2  IS 
ROW1 ora_rt%ROWTYPE; 
ROW2 ora_rt %ROWTYPE; 
BEGIN 
   SELECT ID, Name 
      INTO ROW1 
      FROM ora_rt 
      WHERE ID = 1; 
ROW2 := ROW1; 
END; 
REATE PROCEDURE ORA_SP_ROWTYPE2() 
BEGIN 
   declare SWV_ROW1_ID INT; 
   declare SWV_ROW1_NAME VARCHAR(10); 
   declare SWV_ROW2_ID INT; 
   declare SWV_ROW2_NAME VARCHAR(10); 
   SELECT ID,Name 
   INTO SWV_ROW1_ID,SWV_ROW1_NAME 
   FROM ora_rt WHERE ID = 1; 
   SET SWV_ROW2_ID = SWV_ROW1_ID; 
 SET SWV_ROW2_NAME = SWV_ROW1_NAME; 
END;/ 


Table of ContentsPreviousNext
Ispirer             Ispirer
版权 © 1999-2015 Ispirer Systems Ltd. Ispirer和SQLWaysIspirer Systems Ltd的品牌。所有其他产品名称可能是其各自公司的商标。版权所有。