Oracle 存储过程中 %type 是什么意思

比如下面的存储过程中就有:declare
cursor mycur is select empno,ename,job from emp;
vempno emp.empno%type;
vename emp.ename%type;
vjob emp.job%type;
begin
open mycur;
fetch mycur into vempno,vename,vjob;
dbms_output.put_line('I Found You!'||mycur%rowcount||'行');
dbms_output.put_line('读取的数据为'||vempno||' '||vename||' '||vjob);
close mycur;
end; 上面sql中下面3句式什么意思?vempno emp.empno%type;
vename emp.ename%type;
vjob emp.job%type; 有的还放在调用的参数里面CREATE PROCEDURE p_count(in_sex IN 学生.sex%TYPE, out_num OUT NUMBER);

Oracle 存储过程中 %type 是设置错误造成的,解决方法为:

1、在要调试的存储过程右键,选择编辑以进行调试。

2、点击小瓢虫,弹出调试窗口,截图如下。

3、输入7839员工编号,点击确认,进行调试。

4、增加权限语句如下。

5、再次进行调试,程序停留在断点位置。点击工具栏红色方框,结束调试。 

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-16
vempno emp.empno%type;

例如上面的这句话,
你的vempno就是你定义的变量,和面的那个emp是你数据库里面存在的表,他的表里面有意个empno字段,然后%type就是empno的数据类型,
总体说这句话就是,让vempno与你数据库里面的表字段的属性匹配,这个你就可以很方便的对emp进行操作了,不会因为类型不匹配而报莫名的错误。
简单的说定义的这个存储过程肯定是与这个表有一定关系的。方便操作本回答被网友采纳
第2个回答  推荐于2017-07-03
使用%type可以是变量获得与字段相同的数据类型vempno 的类型自动匹配emp表中empno字段的类型本回答被网友采纳
第3个回答  2013-04-20
vempno emp.empno%type; --声明一个与emp.empno结构、类型一样的变量vempno其它同
第4个回答  2013-04-22
该项所在的整条记录
相似回答