create or replace procedure pro_testif(pro_empNo emp.empno%type) is
2 v_empName emp.ename%type;
3 begin
4 selelct ename into v_empName from emp where empno=pro_empNo;
5 if v_empName='MILLER'
6 then
7 update emp set sal=sal+200 empno=pro_empNo;
8 elsif v_empName='FORD'
9 then
10 update emp set sal=sal+100 empno=pro_empNo;
11 else
12 update emp set sal=sal+10 where empno=pro_empNo;
13 end if;
14 end;
15 /
Warning: Procedure created with compilation errors
2 v_empName emp.ename%type;
3 begin
4 selelct ename into v_empName from emp where empno=pro_empNo;
5 if v_empName='MILLER'
6 then
7 update emp set sal=sal+200 empno=pro_empNo;
8 elsif v_empName='FORD'
9 then
10 update emp set sal=sal+100 empno=pro_empNo;
11 else
12 update emp set sal=sal+10 where empno=pro_empNo;
13 end if;
14 end;
15 /
Warning: Procedure created with compilation errors
解决方案 »
- 查看当前session的nls参数的具体值:select * from nls_session_parameters
- ORA-01653: 在表空间E3_DATA中)扩展
- 如何扩展oracle8.1.7,使其具有正则表达式功能
- 导入.dmp时出错:IMP-00003: 遇到 ORACLE 错误 942
- unix下的oracle 数据库启动
- Oracle 300万的数据 导出 导入问题???
- 谁有关于索引的比较经典的使用教程?
- oracle中,能把SYSTEM ;UNDO;TEMP这用个表空间进行转移吗?
- 菜鸟求救!为什么我在创建资料档案库时却总是出现监听程序无法启动专用服务器进程?
- 关于sql语句中的where条件的问题
- oracle中chain是什么概念呢?
- 我创建了一个表,里面要加入分区语句,分区语句我已经查到了,但不知道怎么写入
v_empName emp.ename%type;
begin
select ename into v_empName from emp where empno=pro_empNo;
if v_empName='MILLER'
then
update emp set sal=sal+200 where empno=pro_empNo;
elsif v_empName='FORD'
then
update emp set sal=sal+100 where empno=pro_empNo;
else
update emp set sal=sal+10 where empno=pro_empNo;
end if;
end;
/
create or replace procedure pro_testif(pro_empNo emp.empno%type) is
v_empName emp.ename%type;
begin
execute immediate 'update emp set sal=sal+(decode(ename,''MILLER'',200,''FORD'',100,10)) where empno=:pro_empNo' using pro_empNo;
end;
/
update emp set sal=sal+200 where empno=pro_empNo;