上篇《懵懂oracle之存储过程》已经给大家介绍了很多关于开发存储过程相关的基础知识,笔者尽最大的努力总结了所有接触到的关于存储过程的知识,分享给大家和大家一起学习进步。本篇文章既是完成上篇文章中未来得及总结的关于存储过程的调用、测试等知识的汇总分享,也是对上篇文章的存储过程的一个调试改错过程(由于知识的局限性和书写时的疏忽等,之前的存储过程有误之处难免,正在不断更改中,如果能得到大家的指正将使这个工作进行地更快更好,助人为快乐之本!)。
下面步入正题,介绍本篇知识汇总和分享:
一、存储过程的调用(代码中sp_hll_test_20170415这个存储过程可参见《懵懂oracle之存储过程》,请注意查看使用最新的代码)。
1 declare -- 如果不需要定义参数,那么就可去掉此declare部分,只使用begin……end块 2 a number; 3 b date; 4 c varchar2(20); 5 d number; 6 status user_tables.status%type; 7 -- e varchar2(20); 长度过小 8 /* 9 务必注意出参或出入参为变量时,变量有长度限制时不得小于在存储过程中会达到的最大值,10 否则会导致过长的字符串无法存入这个长度不够的变量中,而报错:11 ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小12 */13 e varchar2(200);14 begin15 /*16 存储过程调用时,参数可以为常量、变量或绑定变量,参数调用方式可以为定位调用、命名调用或混合调用,17 同时参数