zoukankan      html  css  js  c++  java
  • 执行带有输出参数的存储

    CREATE OR REPLACE PROCEDURE INSERTB(ZJHM IN VARCHAR2,MESSAGE OUT VARCHAR2) 
    IS
    BEGIN  
      IF LENGTH(ZJHM)<>18 THEN 
         MESSAGE:='不是18位身份证号';
         DBMS_OUTPUT.PUT_LINE(MESSAGE); 
       ELSE 
        SELECT SUBSTR(ZJHM,7,4)INTO MESSAGE FROM DUAL;
        DBMS_OUTPUT.PUT_LINE('你的出生年份是:'||MESSAGE);
      END IF;
      
    END INSERTB;
    
    /*
    当创建带有输出参数的存储过程时 用如下的方式调用,不能单独用 CALL 或者 EXEC,
    在pl/sql 中用call 必须在过程后加括号,exec 是用在命令中的
    */
    
    DECLARE
    SALARY VARCHAR2(20);
    BEGIN
    INSERTB('420881198706854052',SALARY);
    END;
    
    --查看存储过程代码
    SELECT * FROM USER_SOURCE WHERE TYPE='PROCEDURE';
    
    --重新编译过程
    ALTER PROCEDURE INSERTB COMPILE;
    
    --查看过程状态
    SELECT object_name,status  FROM USER_OBJECTS WHERE object_type='PROCEDURE';
    
    
    --创建带有默认值的过程
    CREATE OR REPLACE PROCEDURE addEmp
    (
    empNo NUMBER,
    eName VARCHAR2,
    job  VARCHAR2 :='CLERK',
    mgr  NUMBER,
    hiredate DATE  DEFAULT SYSDATE,
    sal  NUMBER  DEFAULT 1000,
    comm  NUMBER  DEFAULT 0,
    deptNo NUMBER  DEFAULT 30
    )
    AS
    BEGIN
    INSERT INTO emp VALUES(empNo,eName,job,mgr,hiredate,sal,comm,deptNo);
    END;
  • 相关阅读:
    Delphi对象的产生和消亡过程
    WIN32的时空观
    PHP类的用法
    D7的System.pas单元的实现部分
    PHP的最简单用法
    C调用Lua
    js连连看
    动态属性的一个架构
    Entity Framework开源了
    apachesolr4.0.0ALPHA中文分析器IKAnalyzer4.0
  • 原文地址:https://www.cnblogs.com/tianmingt/p/3793706.html
Copyright © 2011-2022 走看看