记录,也就是record,在PLSQL中用于存多个列或一个列,但只能存一行,多行必须游标+循环,其中有两个重要的东西联动:
%rowtype,用于查所有列,也就是select *
—%rowtype的使用,存所有的列—
declarev_emp emp%rowtype; /*%左边的emp指的是表*/
beginselect * into v_emp from emp where empno = 7369;dbms_output.put_line(v_emp.ename || ' ' || v_emp.sal);
end;
%type,用于查指定的列
—%type的使用,用于存指定的列—
declarev_name emp.ename%type;v_sal emp.sal%type;
beginselect ename, sal into v_name, v_sal from emp where empno = 7369;dbms_output.put_line(v_name || ' ' || v_sal);
end;
他们两者不像之前需要自己临时在PLSQL中定义数据类型,而是直接沿用的数据库中列的数据类型。
那么怎么才能不要select *,又能方便点把需要的列放一起呢,引用出了record:
—%type和record的联动使用—
declaretype ename_sal is record(ename emp.ename%type,sal emp.sal%type);v_ename_sal ename_sal;
beginselect ename, sal into v_ename_sal from emp where empno = 7369;dbms_output.put_line(v_ename_sal.ename || ' ' || v_ename_sal.sal);
end;