举个例子给你看,相信你一下就能明白了. oracle数据库可以直接编译后运行的.用的是EMP表,你可以自己测试下. ---创建一个存储过程 CREATE OR REPLACE PROCEDURE GET_NAME(C IN NUMBER, D OUT VARCHAR2) AS BEGIN SELECT ENAME INTO D FROM EMP WHERE EMPNO = C; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20001, '你输入的ID不存在!'); END GET_NAME; ---在一个无名块中调用存储过程.(此无名块 加一个CREATE OR REPLACE...就相当于一个存储过程,没什么区别的) DECLARE v_name varchar2(20); BEGIN get_name(2,v_name); DBMS_OUTPUT.put_line(v_name); END; --结果显示为 查找出的员工姓名是:KING