create or replace procedure xt_pro4(name varchar2) is
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename=name;
if v_sal<1000 then
update emp set sal=sal+sal*10% where ename=name;
end if;
end;
/创建的存储过程如上。想要实现 工资小于1000,则涨原有的工资的10%;
问题是:创建存储过程不成功,有警告错误;
但是把“set sal=sal+sal*10%”改为“set sal=sal*1.1”创建过程是可以的。不知道10%这种方法为什么不行?
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename=name;
if v_sal<1000 then
update emp set sal=sal+sal*10% where ename=name;
end if;
end;
/创建的存储过程如上。想要实现 工资小于1000,则涨原有的工资的10%;
问题是:创建存储过程不成功,有警告错误;
但是把“set sal=sal+sal*10%”改为“set sal=sal*1.1”创建过程是可以的。不知道10%这种方法为什么不行?
也就是不能使用百分号来表示百分之多少,并且该符号在一些语言中被用作其它定义。所以写set sal=sal*1.1是最正确的作法
like '%x%'
v_sal emp.sal%type
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename=name;
if v_sal<1000 then
update emp set sal=sal*1.1 where ename=name;
end if;
end;
/