熟悉PL/SQL的同志都知道,%type和%rowtype常用來在PL/SQL中定義變數.%type和%rowtype都是在database中定義的型別,使用%type和%rowtype的好處是1)減少PL/SQL程式碼的維護成本2)自適應表結構的變化[比如欄位的長度,精度發生變化]%TYPE%TYPE用來宣告一個變數和指定表的column一樣的資料型別,比如 DECLAREv_EmpNameemp.ename%TYPE;BEGINSELECTenameINTOv_EmpNameFROMempWHEREROWNUM=1;DBMS_OUTPUT.PUT_LINE("Name="||v_EmpName);END;/%ROWTYPE%ROWTYPE用來宣告一個和表中記錄一樣的record.如DECLAREv_empemp%ROWTYPE;BEGINv_emp.empno:=10;v_emp.ename:="XXXXXXX";END;/DECLAREv_EmpRecordemp%ROWTYPE;BEGINSELECT*INTOv_EmpRecordFROMempWHEREROWNUM=1;DBMS_OUTPUT.PUT_LINE("Name="||v_EmpRecord.ename);DBMS_OUTPUT.PUT_LINE("Salary="||v_EmpRecord.sal);END;/
熟悉PL/SQL的同志都知道,%type和%rowtype常用來在PL/SQL中定義變數.%type和%rowtype都是在database中定義的型別,使用%type和%rowtype的好處是1)減少PL/SQL程式碼的維護成本2)自適應表結構的變化[比如欄位的長度,精度發生變化]%TYPE%TYPE用來宣告一個變數和指定表的column一樣的資料型別,比如 DECLAREv_EmpNameemp.ename%TYPE;BEGINSELECTenameINTOv_EmpNameFROMempWHEREROWNUM=1;DBMS_OUTPUT.PUT_LINE("Name="||v_EmpName);END;/%ROWTYPE%ROWTYPE用來宣告一個和表中記錄一樣的record.如DECLAREv_empemp%ROWTYPE;BEGINv_emp.empno:=10;v_emp.ename:="XXXXXXX";END;/DECLAREv_EmpRecordemp%ROWTYPE;BEGINSELECT*INTOv_EmpRecordFROMempWHEREROWNUM=1;DBMS_OUTPUT.PUT_LINE("Name="||v_EmpRecord.ename);DBMS_OUTPUT.PUT_LINE("Salary="||v_EmpRecord.sal);END;/