In PL/SQL, % ROWTYPE can be used as the row TYPE of a table, and % TYPE can be used as a field as the data TYPE, but several fields to be specified must be used as a data TYPE, you can use PL/SQL records. Definition Syntax of PL/SQL records: SQL code TYPE type_name is RECORD (filed_declaration [, filed_declaration ,... www.2cto.com filed_declaration]); identifier type_name uses PL/SQL record: SQL code declare -- defines TYPE nemp_record_type IS RECORD (nno scott. emp. empno % TYPE, nname scott. emp. ename % TYPE, ndept scott. dept % ROWTYPE); nemp_record nemp_record_type; eno number: = 7788; begin www.2cto.com -- assigns the query result to the defined nemp_record. If dept. * If values are assigned together, too many columns are allowed. empno, e. ename into nemp_record.nno, nemp_record.nname from scott. emp e, scott. dept d WHERE e. deptno = d. deptno AND e. empno = eno; SELECT * into nemp_record.ndept from scott. dept where deptno = (select deptno from scott. emp where empno = eno); dbms_output.put_line (nemp_record.ndept.dname); -- output: RESEARCH end; from Ear's blog