`
y806839048
  • 浏览: 1126113 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

存储过程,函数,视图

阅读更多

//存储过程用于操作数据库,函数于返回数据,存储过程中可以调用存储过程,函数

 

create or replace (PROCEDURE/FUNCTION) ***(参数 类型)//对于存储过程来讲 参数有in out之分,不写默认in,函数都是in(不用写)

 

as /return varchar2 IS//存储过程用as,函数用return varchar2 IS

///PRAGMA AUTONOMOUS_TRANSACTION;子事物有异常主事物不受影响他的提价可以带动主事物的提交

 

变量名  变量类型////赋值的时候变量名:=;引用的时候不要打:

V_STR VARCHAR2(10240) DEFAULT '';

 

begin

 

 

if .. and ... then 

 

 

else 

 

 

 

end if;

 

 

 

变量:=case 变量 when  'null' then ''  when 'NULL' then ''  else 变量  end;

 

when ... then

 

when  others then 

 

//return 变量;  函数的时候return

 

commit;////如果用到了异常处理那么整个存储过程中的操作要设置回滚的话在处理异常的时候写ROLLBACK;函数,视图不做数据操作,只是运算,存储过程才有事物之说

end;

 

 

 

 

//////视图

 

create or replace view ** 

as

 

查询语句而已

 

 

 

 

 

 

几种常用的语法配合使用:

 

 

 

 

 

 

//查询赋值

 

  SELECT CHK_STATUS

    INTO V_CHK_STATUS

    FROM TB_CD_DEP

   WHERE CD_KEY=V_CD_KEY;

 

 

 

//插入查询   省略value关键字

 INSERT INTO TB_CD_LOG_NEW(

     LOG_KEY,CD_KEY,LOG_TYPE

    ,OPE_MAN_KEY,OPE_MAN

    ,LOG_TIME,LOG_CONTENT

    ,REMARK

    )

    SELECT

     V_LOG_KEY,CD_KEY,'F'

    ,NULL,V_STORAGE_CHK_MAN

    ,SYSDATE,'仓单入库审核操作:审核驳回'

    ,NULL

     FROM TB_CD_DEP

    WHERE CD_KEY=V_CD_KEY;

 

 

异常处理:

 

参数定义处:

 

 USERDEF_EXCPT EXCEPTION;

 

 需要抛异常处:

  RAISE USERDEF_EXCPT;

 

 

 

 

捕捉异常处理处:

 EXCEPTION

    WHEN USERDEF_EXCPT THEN

      ROLLBACK;

      OUTPARA := 'ARTNFLAG=1'||CHR(13)||CHR(10)||'MSG='||TRIM(V_ERRMSG);

      PD_BAS_GETPRO_LOG('PD_CD_CHK','仓单入库审核',INPARA,OUTPARA,'N');

    WHEN OTHERS THEN

      ROLLBACK;

      OUTPARA := 'ARTNFLAG=1'||CHR(13)||CHR(10)||'MSG='||SQLERRM;

      PD_BAS_GETPRO_LOG('PD_CD_CHK','仓单入库审核',INPARA,OUTPARA,'N')

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics