语法规范

【规则-1】:存储过程的Inout参数应按类别分开书写,不要交叉。

例:

       create or replace procedure sp_create_scp(

                  i_gsm_user_id     number,             --用户号码

                  i_order_code      number,                  --命令代码

                  i_operation_type  number,                --工单类型

                  i_operating_srl   number,                  --操作流水

                  o_operation_srl   out number,          --工单流水(返回参数)

                  o_flag            out number     ,         --成功 0 ,失败 1

                  o_msg           out varchar2

                  )

begin

… …

end;

【规则-2】:存储过程中变量的声明应集中在isbegin关键字之间申明

例:

create or replace procedure sp_create_scp(

                                          … …

)

is

… …

   v_user gsm_user%rowtype;   --用户信息

   v_value     varchar2(30);

   nCnt        number(5):=0;

   nPriority   number(2):=0;

begin

… …

end;

【规则-3】:尽可能使用相关表字段类型来定义相关的变量,如%type%rowtype

说明:一般变量,都可能会用于表的查询条件,或增加记录的值;当字段数据类型发生变更时,对应的变量无需修改。

例:

v_user gsm_user%rowtype;   --用户信息

select * from gsm_user where gsm_user_id = v_user;

当gsm_usre_id的类型变成字符型时,该段代码无需修改。

【规则-4】:确保所有的变量和参数都用到,没有用到的变量和参数要删除。

【规则-5】:存储过程有多个分支返回时,若有事务控制,需确保各个分支都结束事务。

异常时,应该在Exception中捕捉异常,并进行事务处理。

【规则-6】:存储过程:不要在异常部分,进行正常的业务处理。

说明:从程序的易读性、易维护性考虑,不要在异常处理部分,包含正常的业务处理部分。

例:(不好的写法)

exception

When no_data_found then

--没有找到记录,则重新查找其他数据

Select * from

….

End;

【规则-7】:原则上不要使用动态 sql,如果必须使用,需绑定变量,

绑定变量写法:

QUERY_STRING :='select pr_template from bssp.bssp_process_template where process_id=:ora_process_id for update';

… …

EXECUTE IMMEDIATE QUERY_STRING INTO LOB USING 38880003;

【规则-8】:代码中的异常捕获返回结果,要加上Oracle的异常sqlerrmOracle的一个session级的全局变量)。

例:

exception
    when others then

rollback;
        oResult :=1;
        oMsg := 'others'||substr(sqlerrm,200);
end;

【规则-10】:捕捉到异常后需要rollback回滚事务。

例:

exception
    when others then

rollback;
        oResult :=1;
        oMsg := 'others'||sqlerrm;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本的语法规范可以包括以下几个方面: 1. 文件头注释:在脚本的开头,通常会包含一段注释,用于说明脚本的作者、创建日期、版本号以及脚本的作用等信息。例如:#\[3\] 2. Shebang行:在脚本的第一行,通常会使用Shebang行指定脚本的解释器。例如,#!/bin/bash表示使用bash解释器来执行脚本。 3. 变量定义:在脚本,可以使用变量来存储和操作数据。变量的定义通常使用等号(=)进行赋值。例如,name="John"定义了一个名为name的变量,并将其赋值为"John"。 4. 命令执行:在脚本,可以使用命令来执行特定的操作。命令可以是系统命令、Shell内置命令或者其他可执行文件。例如,ls命令用于列出当前目录的文件列表。 5. 输入输出重定向:可以使用重定向符号(>、>>、<)将命令的输入或输出重定向到文件或者其他命令。例如,command > file将命令的输出重定向到文件。 6. 条件判断:可以使用条件语句来根据条件的真假执行不同的代码块。常用的条件判断语句包括if语句和case语句。例如,if \[ $num -gt 10 \]表示如果变量num的值大于10,则执行相的代码块。 7. 循环结构:可以使用循环语句来重复执行一段代码。常用的循环结构包括for循环、while循环和until循环。例如,for i in {1..5}表示对变量i从1到5进行循环。 8. 函数定义:可以使用函数来封装一段可重用的代码。函数的定义通常使用关键字function和函数名。例如,function hello() { echo "Hello, World!" }定义了一个名为hello的函数。 以上是一些常见的Shell脚本语法规范,可以根据具体的需求和编码风格进行适当的调整和扩展。 #### 引用[.reference_title] - *1* [Shell脚本基本规则](https://blog.csdn.net/qq_41891805/article/details/104490404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [shell脚本基本语法详解](https://blog.csdn.net/twi_twi/article/details/128446117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Shell脚本语法规范](https://blog.csdn.net/Hwulawulawula/article/details/120851522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值