使用CALL和EXEC調用存儲過程的區別
来源:互联网 发布:最佳适应算法例题 编辑:程序博客网 时间:2024/04/25 12:38
转自:http://blog.csdn.net/ngx20080110/article/details/5883471
使用CALL調用存儲過程,不能使用名稱參數,同時也會忽略未處理的ORA-01403:NO DATA FOUND錯誤。而使用EXEC的話,可以使用名稱參數,同時會拋出未處理的ORA-01403,使用BEGIN ... END效果與EXEC相同。例子如下
創建一個簡單的存儲過程:
- create or replace procedure proc_update_salary(
- p_emp_id number,
- p_increment number default 0.1 -- 可以不傳入p_increment的參數值,默認值使用0.1
- )
- is
- v_old_salary number;
- begin
- select salary
- into v_old_salary
- from employees
- where employee_id = p_emp_id;
- if v_old_salary < 10000 then
- update employees
- set salary = salary + salary * p_increment
- where employee_id = p_emp_id;
- end if;
- end;
測試
- call proc_update_salary(198); -- 正常運行
- call proc_update_salary(1908, 0.2); -- 沒有拋出ORA-01043
- call proc_update_salary(p_emp_id=>198); -- 不能執行,ORA-00907: missing right parenthesis
- exec proc_update_salary(p_increment=>0.2, p_emp_id=>1908); -- 可以執行,但拋出ORA-01043
- begin
- proc_update_salary(198, 0.2); -- 正確運行
- end;
- 使用CALL和EXEC調用存儲過程的區別
- 使用CALL和EXEC調用存儲過程的區別
- Oracle 中 call 和 exec的区别
- exec 和 call 用法详解
- oracle exec 和 call 区别
- oracle:exec和call调用procedure的区别
- EXEC和CALL有什么区别?
- Oracle中call和exec区别
- call 和 apply 的使用
- find,grep和exec的使用
- python中eval和exec的使用
- call和apply的使用和区分
- Oracle中执行存储过程call和exec区别
- Oracle中执行存储过程call和exec区别
- Oracle中执行存储过程call和exec区别
- JavaScript中apply和call的使用
- apply()和call()、bind()的使用介绍
- 关于call和apply的使用
- Mobile Web App发展现状及展望
- zeroMQ/jzmq 安装
- hibernate配置属性hbm2dll.auto初步理解
- 对C++ STL,list元素的循环删除操作 //断链,出错地方
- flex菜鸟必知一
- 使用CALL和EXEC調用存儲過程的區別
- Python正则表达式实例
- 10405 Longest Common Subsequence
- 设置nginx防止别人的域名绑定你的主机
- GPGPU前世今生
- android开发之VIM快捷键使用指南
- java.lang.IllegalStateException: Web app root system property already set to different value
- (C#)利用Aspose.Cells组件导入导出excel文件
- apache的用多个env作为或条件的配置