常用小语法

个人记性比较差,很多基础语法总是忘记,在这里把一些低级语法,总一下。

1,goto用法 、

begin

其他语句

goto over_flag;

其他语句
    
       <<over_flag>>

 log('程序直接调到这里,做日志输出');

end;

2,sqlerrm sqlcode   常用异常的系统默认代码,要将其赋值给预先定义的变量才能用

3,独立事务   pragma autonomous_transaction; (在建立过程或函数时,在is后面加上该语法即可)
一般和rollback同时应用,防止回滚对主程序产生影响,同时可以作出很好的异常处理,同时对于dml的语法对应的过程,其中应该考虑commit的作用
一瞬间理解rollback和return的差别, rollback只是将dml语句的操作进行回滚,程序会继续往下走,而return 会直接结束程序

4,临时表建表

临时表建表语句
基于事务的:create global temporary table cux.cux_gl_seg_hierarchys_temp01 (
FLEX_VALUE        VARCHAR2(60),
SUMMARY_FLAG    VARCHAR2(1)) ON COMMIT DELETE ROWS ;
基于会话的:on commit delete rows中的delete 改为PRESERVE 二者的区别从写法意义上区分即可
关于临时表应用的猜想:
将一些复杂的子集,先放在临时表里,而后在主结构中进行引用,会使得程序结构变得更加清晰

5 ,substr 和instr

    substr(‘varchar2’,‘number(起始位置)’,‘number(截取长度)’)
    instr(‘varchar2’,‘#’,‘number(起始位置)’,‘number第几个#’)
6,报表中常用的两个自定义过程

----日志

procedure log(p_msg varchar2) is

  begin

    fnd_file.put_line(fnd_file.log, p_msg);

  end log;

----打印输出(xml或html)

procedure output(p_msg varchar2) is

  begin

    fnd_file.put_line(fnd_file.output, p_msg);

  end log;

7,建立同义词

create synonym table_name for user.table_name;

原文地址:https://www.cnblogs.com/akami/p/6933679.html