oracle写存储过程

1存储过程主体

--存储过程,传入参数,求要求的商品总价
CREATE OR REPLACE PROCEDURE P_PRO ( P_NAME VARCHAR2,
  U_NAME  VARCHAR2
)
AS
A_OVER NUMBER;
BEGIN
  SELECT 
  B.PRODUCT_NUM*B.PRICE
  INTO
  A_OVER
  FROM
  USER_M A,
  PRODUCT_RELEASE B
  WHERE
  A.USER_ID=B.PRODUCT_ID
  AND B.PRODUCT_NAME=P_NAME
  AND A.USER_NAME=U_NAME;
  DBMS_OUTPUT.PUT_LINE(A_OVER);
  
  EXCEPTION 
    WHEN NO_DATA_FOUND THEN
      DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
  END P_PRO;
  
  

2.调用存储过程

DECLARE  
N VARCHAR2(20);
P VARCHAR2(20);
BEGIN
   N:='护肤水';
   p:='张力';
  P_PRO(P_NAME=>n,
        U_NAME=>p
  );
  END;

 添加 存储过程带输出参数的创建及调用

---存储过程带输入输出参数
    CREATE OR REPLACE PROCEDURE PR_C(AT_C IN VARCHAR,  
    AN_C OUT VARCHAR,
    AC_C OUT NUMBER
                                     
                                     )
                                      AS
BEGIN
    SELECT USER_NAME, EMAIL 
    INTO AN_C, AC_C 
    FROM USER_M
    WHERE DEPART = AT_C;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
END PR_C;
----调用带输入输出参数的存储过程
DECLARE
C_AN VARCHAR(20);
C_AAC NUMBER;
BEGIN
  PR_C('建筑系',C_AN,C_AAC);
  DBMS_OUTPUT.PUT_LINE('用户姓名是:'||C_AN||'   用户邮箱是:'||C_AAC);
  
 END;

结果

原文地址:https://www.cnblogs.com/jian-96/p/10154398.html