SQL中的%type怎么样用?表示什么?
1个回答
展开全部
如下,在oracle中,定义一个存储过程,“tempno in emp.empno%type ”的意思是,tempno 的数据类型和emp表的empno列的数据类型相同;这就是%type 的用处
create or replace procedure testone(tempno in emp.empno%type)
is
tsal emp.sal%type:=0;
begin
select sal into tsal from emp where empno=tempno;
if tsal=0 then
dbms_output.put_line('没有此员工.');
else
dbms_output.put_line('工资:'||tsal);
end if;
end testone;
create or replace procedure testone(tempno in emp.empno%type)
is
tsal emp.sal%type:=0;
begin
select sal into tsal from emp where empno=tempno;
if tsal=0 then
dbms_output.put_line('没有此员工.');
else
dbms_output.put_line('工资:'||tsal);
end if;
end testone;
追问
还是不很懂,如果我修改了emp类型,如原来是number (7,3)现改成(5,2)了,那empno 会变吗?
追答
这个就是看存储过程本身的工作机制了,是一次性的编译还是每次的调用时重新编译解析了。应该是每次的调用,重新解析存储过程。也就是说,empno 也会变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询