建立一个.sql的文件,内容为:
create or replace procedure procedurename
(ret out number)
is
--变量定义
begin
pl/sql 语句
end;
/
然后进入sqlplus 执行这个.sql
sqlplus username/password @filename.sql
正常的话,系统提示procedure created,否则提示Warning: Procedure created with compilation errors
那就退出sqlplus 找错把。
在pro*c中调用时
EXEC SQL EXECUTE
BEGIN procedurename(:ret);
END;
END-EXEC;
ret 是procedure的返回值.
例如这样的,为什么编译时通不过呢??说有语义错误,但我不知哪儿有问题,望指教
EXEC SQL EXECUTE
BEGIN
SELECT ENAME,JOB,SAL,COMM
INTO :emp_name,:job,:salary,:commission
FROM EMP
WHERE EMPNO=:emp_number;
例如这样的,为什么编译时通不过呢??说有语义错误,但我不知哪儿有问题,望指教
EXEC SQL EXECUTE
BEGIN
SELECT ENAME,JOB,SAL,COMM
INTO :emp_name,:job,:salary,:commission
FROM EMP
WHERE EMPNO=:emp_number;