查询当前用户的存储过程:
SELECT * FROM user_procedures
SELECT * FROM user_errors
CREATE OR REPLACE PROCEDURE pro_add(
-- 参数
num1 NUMBER, -- 默认为 in 输入
num2 OUT NUMBER -- out 为输出 in out 为输入且输出参数
)
AS
-- 定义变量 并赋值
num3 NUMBER := 11;
BEGIN
num2 := num1 + num3;
END pro_add; --也可以省略存储过程名称
执行存储过程:在plsql中执行 上述sql即可执行,如果在sqlplus 中执行,则换行加"/" 执行。sqlplus 中不显示结果,先得set serveroutput on
DECLARE
num3 NUMBER(10); -- 创建变量 注意要设置长度
BEGIN
pro_add(22,num3); -- 执行存储过程
dbms_output.put_line(num3); -- 打印信息
END;
IF判断:
CREATE OR REPLACE PROCEDURE pro_test(
num1 IN OUT NUMBER
)
AS
num3 NUMBER := 100;
BEGIN
IF num1 != 0 THEN -- 可以没有括号
BEGIN -- 好像没有也可以
num1 := num3 / num1;
END;
END IF;
END;
IF else if 判断:
CREATE OR REPLACE PROCEDURE pro_test(
num1 IN OUT NUMBER,
fuhao IN VARCHAR
)
AS
num3 NUMBER(10) := 100;
BEGIN
IF (fuhao='+') THEN
num1:=num1+num3;
ELSIF(fuhao ='-') THEN -- 注意是elsif
num1:=num3-num1;
ELSE
num1:=num3*num1;
END IF;
END;