模式 描述 用来从调用环境中向存储过程传递值,不能给IN参数赋值, 给此参数传递的值可以是常量、有值的变量、表达式等。 用来从过程中返回值给调用者,不能将此参数的值赋给另 一个变量,不能是常量或表达式。在过程体内,必须给 OUT参数赋值。 既可以从调酷霉嚷龙用者向过程中传递值,执行过程后还可返回可能 改变了的值给调用者。 1、带参存储过程(输入参数) 创建存储过程Hello‘Tom’ SQL>create or replace procedure helloTom(pname in varchar2) as begin dbms_output.put_line('hello'||pname||'!'); end; SQL>/ 执行 SQL>set serveroutput on; SQL>exec helloTom('jerry'); 显示如下结果 hellojerry! PL/SQL procedure successfully completed 注:由于存储过程是高度过程化语言,所以‘+’为能像面向对象一样被重载为字符串相加,所以在存储过程语法中使用‘||’表示字符串相加操作。输入参数可省略in如(pname varchar2) 2、带参存储过程(输出参数) 创建存储过程Write‘Tom’ SQL>create or replace procedure writeTom(pname out varchar2) as begin select name into pname from t1 where rownum=1; end; SQL>/ 带输出参数存储过程的调用格式: (1)绑定参数值 variable输出参数变量1,输出参数变量2…; 调用存储过程 EXEC[UTE]procedure_name(参数值1…参数名n,:绑定变量1,,:绑定变量2….); SQL>variable pname varchar2(40); SQL>exec writeTom(:pname); 带输出参数存储过程的调用格式: (2)在程序块中调用存储过程 SQL>declare 2pname varchar2(40); 3begin 4writeTom(pname); 5dbms_output.put_line(pname); 6end; 7/ 3、带参存储过程(inout参