时间:2021-07-01 10:21:17 帮助过:25人阅读
2、%RowType
如果一个表有较多的列,使用%ROWTYPE来定义一个表示表中一行记录的变量,比分别使用%TYPE来定义表示表中各个列的变量要简洁得多,并且不容易遗漏、出错。这样会增加程序的可维护性。
为了使一个变量的数据类型与一个表中记录的各个列的数据类型相对应、一致,Oracle提供%ROWTYPE定义方式。当表的某些列的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。当不能确切地知道被参照的那个表的结构及其数据类型时,就只能采用这种方法定义变量的数据类型。
一行记录可以保存从一个表或游标中查询到的整个数据行的各列数据。一行记录的各个列与表中一行的各个列有相同的名称和数据类型。
DECLARE V_SF_ORG_REC SF_ORG%ROWTYPE; --与SF_ORG表中的各个列相同 BEGIN SELECT * INTO V_SF_ORG_REC FROM SF_ORG SO WHERE SO.ORG_ID=&ORG_ID; DBMS_OUTPUT.PUT_LINE(‘部门ID:‘ || TO_CHAR(V_SF_ORG_REC.ORG_ID)); DBMS_OUTPUT.PUT_LINE(‘部门名称:‘ || V_SF_ORG_REC.ORG_NAME); DBMS_OUTPUT.PUT_LINE(‘上级部门编码:‘ || TO_CHAR(V_SF_ORG_REC.PARENT_ID)); END;
注:上面的代码在Sql plus中运行
ORACLE中%TYPE和%ROWTYPE的使用
标签:begin 简洁 parent lang sql语句 关联 code 方法 to_char