ORACLE存储过程编码规范

合集下载

存储过程及参数命名规范

存储过程及参数命名规范

存储过程及参数命名规范一、存储过程命名规范1.操作方式add(添加) mod(修改) del(删除) sel(查询) drag(托拽) copy(拷贝) lock(锁) chk(检查) cho(选择) rp(报表) ini(初始化) get(得到function专用)2.结果类型Tree(树) Tab(表)3.修饰语A(Tab专用修饰符all)4.顺序bf(之前)5.过程标识P (对外过程) F(方法) E(内部过程)公有过程命名规则公式:过程名=标识+对象条件+操作及修饰过程标识_对象名(By条件)(结果类型)_主操作方式(修饰语) (顺序)(次操作方式) ()是可选对象例:树查询p_xxxxTree_Sel树节点查表p_xxxxTab_Sel主特征表查询P_xxxxByChr_Sel明细特征表查询P_xxxxByDtlChr_Sel查询所有p_xxxxx_SelA独立选择框树P_xxxxTree_Cho独立选择框树查表P_xxxxTab_Cho独立选择框待选项查询p_xxxxByChr_Cho独立选择框已选择项查询P_xxxxSeled_Cho业务绑定选择框树P_xxxxforxxxTree_Cho业务绑定选择框树查表P_xxxxforxxxTab_Cho业务绑定选择框普通查询p_xxxxforxxxByChr_Cho业务绑定已选择项查询P_xxxxforxxxSeled_Cho除主页面查询外的其他条件查询P_xxxxByxxxx_Sel新增P_xxxx_Add修改P_xxxx_Mod删除P_xxxx_Del删除前检查P_xxxx_ChkBfDel初始化P_xxxx_IniBfxxx新增,修改,删除任选合一P_xxxx_Save方法命名规则F_getxxx //函数使用GET内部过程命名规则E_xxxxByxxx_Mod//内部方法E _xxxx_ChkDelE _xxxx_ChkModE _xxxxByxx_Mod二、变量命名规范1.摘要表引用变量命名尽量定义在pkg_bom_define中防止重复定义Dt_xxxxx 如:dt_cnctype_jp2.自定义常量命名尽量定义在pkg_bom_define中防止重复定义Const_xxxx 如:const_Leaf3.自定义变量尽量定义在包头防止各过程重复定义Var_xxxx 如:var_curpage 字符型变量Flt_xxxx 如:flt_monery浮点型变量Num_xxxx 如:num_pagecount数字型变量三、RECORD命名规范Record命名:1.普通对象:Xxxx_Rec 例:Type Role_Rec is Record2.树对象:XxxxTree_Rec 例: Type RoleTree_Rec is Record四、游标定义规范1.对外返回游标普通游标c_xxx 树游标c_xxxTree例:type c_role is ref cursor return role_Rec; --返回角色信息游标2.内部使用动态游标cur_xxx例:for cur_num in c_num1(i_role_class) loop五、类型自定义对象及table对象命名规范1.自定义对象命名对象名=模形名称_OBJ 例:CALENDAR_OBJ2. 自定义TABLE命名名称=模形名称_ OBJ_ARRAY 例:CALENDAR_OBJ_ARRAY六、入参自定义类型名称规范自定义table类型入参数命名入参集对象命名=i_模型名称_array例:i_hour_arrayprocedure Ssp_BfHourdelete_check(i_hour_array in HOUR_OBJ_ARRAY, --工时对象o_Return_Code Out Varchar2, --返回代码o_Error_Message Out Varchar2, --错误信息o_Sqlerrm Out Varchar2 --错误sql信息)is七、JAVA方法命名规范在dao接口中命名规范如下:原则:1、过程中P开头的需要定义方法,其他则不需要2、方法命名公式:方法名=操作及修饰+对象条件参考:过程公式:过程名=标识+对象条件+操作及修饰例:过程名:P_xxxx_ChkBfDel JA V A方法名:chkBfDelxxx过程名:P_xxxxTree_Sel JA V A方法名:queryXxxxTree过程名:P_xxxx_Mod JA V A方法名:modXxxx过程名:P_xxx_SelA JA V A方法名:queryAllXxx注意事项:1、如果过程结尾是Sel 或SelA JA V A方法为query 或queryAll2、如果过程结尾是Cho JA V A方法为queryXxxxCho其他则严格按原来的过程命名规则定义JA V A方法名称。

oracle mysql 编码规则

oracle mysql 编码规则

oracle mysql 编码规则Oracle和MySQL是两个常用的关系型数据库管理系统,它们在编码规则方面有些不同。

下面我将为您介绍Oracle和MySQL的编码规则。

一、Oracle编码规则:1.字符集选择:Oracle支持多种字符集,如AL32UTF8、UTF8、ZHS16GBK等。

其中,AL32UTF8是Unicode编码的扩展,能够存储任何字符,建议使用AL32UTF8字符集,以适应全球化的需求。

2.字符长度限制:Oracle中的VARCHAR2类型的字符长度限制为4000字节,在AL32UTF8字符集下,这对应于4000个ASCII字符或者1333个汉字。

如果需要存储更多字符,可以使用CLOB类型。

3.使用国际化支持函数:Oracle提供了丰富的国际化支持函数,如NLS_LOWER、NLS_UPPER、NLS_INITCAP等,可以在各种字符集之间进行转换和比较。

4.字符编码转换:在涉及到不同字符集之间的数据传输和处理时,需要进行字符编码转换,Oracle提供了一系列的函数和工具来实现字符编码转换,如CONVERT、NLS_CHARSET_ID等。

5.字符串比较规则:在Oracle中,字符串比较默认是不区分大小写的,如果需要进行区分大小写的比较,可以使用BINARY_CI规则或者设置NLS_SORT参数。

6.字符集的设置:在创建数据库时,需要设置数据库的字符集,可以在CREATE DATABASE语句中指定字符集,也可以使用ALTER DATABASE语句来修改数据库的字符集。

二、MySQL编码规则:1.字符集选择:MySQL支持多种字符集,如utf8mb4、utf8、gbk 等。

其中,utf8mb4是Unicode编码的超集,能够存储任何字符,建议使用utf8mb4字符集,以适应全球化的需求。

2.字符长度限制:MySQL中的VARCHAR类型的字符长度限制为65535字节,在utf8mb4字符集下,这对应于65535个ASCII字符或者21845个汉字。

Oracle存储过程编码规范

Oracle存储过程编码规范

Oracle存储过程编码规范版本号:3.0目录1. 目的 (1)2. 名词解释与定义 (1)3. 规范内容 (1)3.1. 命名规范 (1)3.2. 注释信息 (3)3.3. 错误处理 (4)3.4. 其它规范 (6)4.过程应用指南 (8)4.1. 剪裁 (8)4.2. 使用指南 (8)1.目的规范项目SP代码的编写,保证程序风格的同一性和一致性。

2.名词解释与定义无3.规范内容3.1.命名规范3.1.1.存储过程名称采用“p+模块名一位缩写+功能描述”的格式命名;如p_YWRTJOB。

3.1.2.存储过程的输入输出参数存储过程根据需要自行决定参数的数目、类型和长度;对于需要提交给任务管理器调用的存储过程,为了保证任务管理器的统一调度;需要用另外一个存储过程进行封装,该封装sp的输入参数采用i_parm命名,输出变量采用o_parm来命名,类型为varchar2(80), 如长度需要超过80,提交讨论,原则不应大于200。

只能有一个输入和一个输出参数,输出参数的第一位是…O‟(OK)或者…E‟(ERROR),第2位开始开始直接写错误信息(如果正确返回,从第2位开始可以写返回信息,内容不作要求),用该sp来调用具体实现业务操作的存储过程。

3.1.3.变量的命名所有的变量采用格式为:变量前缀_变量描述。

一般变量的前缀使用类型的缩写:NCHAR:ncCHAR:cV ARCHAR2: vcNV ARCHAR2: nvcNUMBER: nDATE: dROWID: ridUROWID: uridBINARY_INTEGER: biPLS_INTERGER: piBOOLEAN:bBLOB: blbCLOB: clbNCLOB: nclbBFILE: bfl例如:vc_StnName、n_FlightDate。

游标变量:前缀为cur。

存放游标记录集。

记录型变量:前缀为rec。

存放记录型数据。

表类型变量:前缀为tab。

编码规范_ORACLE

编码规范_ORACLE

密级:内部公开文档编号:NTT_SD_OBMGF版本号:V1.0编码规范_ORACLE惠州市新中新电子技术开发有限公司------------------------------------------------------------------------------------------------------ 惠州市新中新电子技术开发有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。

文件更改摘要:目录1.前提 (6)2.英文使用原则 (6)3.逻辑对象的定义规范 (6)3.1. ORACLE表空间定义 (6)3.1.1.原则 (6)3.1.2.命名 (6)3.2. ORACLE数据文件 (7)3.2.1.数据文件的存放 (7)3.2.2.数据文件的命名 (7)3.2.3.数据文件的大小 (7)3.2.4.数据文件属性 (7)3.3. 用户管理 (7)3.3.1.用户创建 (7)3.3.2.用户授权 (7)3.3.3.密码管理 (8)3.3.4.用户命名规范 (8)3.4. 表定义 (8)3.4.1.表名 (8)3.4.2.主键(PRIMARY KEY) (9)3.5. 列 (9)3.5.1.列类型 (9)3.5.2.列长度 (9)3.6. 索引 (10)3.7. 主键 (10)3.8. 外键 (10)4.表分析 (10)5.PL/SQL存储过程编写规范 (10)5.1. 命名 (10)5.2. 格式 (11)5.3. 大小写规则 (11)5.4. 语句规范 (12)5.4.1.SELECT语句的格式标准: (12)5.4.2.UPDATE语句的格式标准: (12)5.4.3.INSERT语句的格式标准: (13)5.4.4.DELETE语句的格式标准: (13)5.4.5.UNION,INTERSECT及MINUS (13)5.4.6.尽量避免使用GOTO.. .. BEL语句; (14)5.4.7.ORACLE的伪表与伪列: (14)5.4.8.使用%ROWTYPE 和%TYPE (15)5.4.9.尽量不使用NOT IN子句; (15)5.4.10.不要在WHERE 子句中使用函数作为条件; (15)5.4.11.使用SELECT COUNT(1) (15)5.4.12.EXISTS 子句中,使用SELECT 1; (15)5.4.13.使用CREATE TABLE AS; (15)5.4.14.使用TRUNCATE TABLE; (16)5.4.15.在PL/SQL 中使用sqlcode,sqlerrm (16)5.4.16.适当使用ORACLE的HINT; (16)5.5. 注释要求 (17)5.5.1.位置要求 (17)5.5.2.存储过程注释要求 (17)5.5.3.代码片断注释要求 (17)5.6. 代码片断处理要求 (18)5.6.1.变量的声明 (18)5.6.2.数据选取 (18)5.6.3.游标的使用 (18)5.6.4.错误处理要求 (19)5.6.5.尾注要求 (20)6.C/C++嵌入式SQL书写规范 (20)6.1. S ELECT语句格式标准 (21)6.2. U PDATE语句格式标准 (21)6.3. D ELETE语句格式标准 (21)6.4. I NSERT 语句格式标准 (22)6.5. 日期、时间使用格式 (22)7.JDBC&ORACLE使用注意点 (22)7.1. 关闭自动提交功能,提高系统性能 (22)7.2. 在动态SQL或有时间限制的命令中使用S TATEMENT对象 (22)7.3. 在成批处理重复的插入或更新操作中使用P REPARED S TATEMENT对象 (23)7.4. 利用SQL完成数据库内的操作 (23)8.数据库设计开发约定 (23)8.1. 英文命名全部大写,单词之间用下划线分隔 (23)8.2. V ARCHAR类型字段最长为4000 (24)8.3. 所有数值型的字段统一使用NUMBER(X)/ NUMERIC(X) (24)8.4. 索引名统一为IDX_T ABLE N AME[_X] (24)8.5. SQL查询条件中注意字段的类型要一致 (24)8.6. 字段别名统一用AS方式 (24)9.存储过程开发约定 (25)9.1. 存储过程命名约定 (25)9.2. 存储过程变量前缀命名约定 (25)9.3. 存储过程参数传递约定 (26)9.4. 返回值约定 (26)9.5. 异常处理约定 (27)1.前提1.数据库设计工具使用PowerDesigner。

oracle数据库存储过程写法

oracle数据库存储过程写法

oracle数据库存储过程写法在Oracle数据库中,存储过程可以使用PL/SQL语言进行编写。

以下是一个简单的Oracle数据库存储过程的示例:```CREATE OR REPLACE PROCEDURE my_procedureIS-- 声明变量my_variable VARCHAR2(100);BEGIN-- 初始化变量my_variable := 'Hello, World!';-- 打印变量值DBMS_OUTPUT.PUT_LINE(my_variable);END;/```在这个示例存储过程中,我们首先使用`CREATE OR REPLACE PROCEDURE`语句定义存储过程,并指定存储过程的名称为`my_procedure`。

在存储过程主体中,我们声明了一个名为`my_variable`的变量,并使用`VARCHAR2(100)`指定了变量的数据类型和最大长度。

在`BEGIN`和`END`关键字之间,我们可以编写存储过程的逻辑。

在这个例子中,我们将字符串`Hello, World!`赋值给`my_variable`变量,并使用`DBMS_OUTPUT.PUT_LINE`过程将变量的值打印到输出窗口。

要执行这个存储过程,可以使用`EXECUTE`语句,例如:```EXECUTE my_procedure;```这将执行`my_procedure`存储过程,并在输出窗口中打印`Hello, World!`。

注意,在执行存储过程之前,需要先启用输出窗口,可以使用以下SQL语句启用输出窗口:```SET SERVEROUTPUT ON;```。

数据库编码规范

数据库编码规范

命名和注释规范1.数据库涉及字符规范采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线_组成,共63个字符。

不能出现其他字符(注释除外)。

2.数据库对象命名规范数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。

对象名字由前缀和实际名字组成,长度不超过30。

在SYBASE ASE下,对象名区分大小写,统一使用大写,其他数据库按照本规范。

前缀:使用小写字母字典表d_视图view存储过程proc函数func实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。

如视图User_List存储过程User_Delete因此,合法的对象名字类似如下。

视图view_Message_List存储过程proc_Message_Add3.视图命名规范我们约定,字段由前缀和实际名字组成,中间用下划线连接。

前缀:使用小写字母view,表示视图。

因此,合法的视图名类似如下。

view_Userview_UserInfo4.存储过程命名规范我们约定,过程由前缀和实际名字加操作名字组成,中间用下划线连接。

前缀:使用小写字母proc,表示存储过程。

操作名字:Insert|Delelte|Update|Caculate|Confirm|Init例如:proc_User_Insert5.存储过程设计注释规范注释大致格式如下:CREATE OR REPLACE PROCEDURE proc_xxxx_xxxx ()IS(或AS)/*************************************************** 存储过程名:proc_xxxx_xxxx* 作者:Yezi(叶子)* 日期:2004-12-17* 版本: 1.0* 描述:保存用户资料* 入口参数:* 出口参数:* 具体流程:* 变更过程及变更内容描述:*************************************************/6.sql语句规范所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等。

存储过程及参数命名规范

存储过程及参数命名规范

存储过程及参数命名规范一、存储过程命名规范1.操作方式add(添加) mod(修改) del(删除) sel(查询) drag(托拽) copy(拷贝) lock(锁) chk(检查) cho(选择) rp(报表) ini(初始化) get(得到function专用)2.结果类型Tree(树) Tab(表)3.修饰语A(Tab专用修饰符all)4.顺序bf(之前)5.过程标识P (对外过程) F(方法) E(内部过程)公有过程命名规则公式:过程名=标识+对象条件+操作及修饰过程标识_对象名(By条件)(结果类型)_主操作方式(修饰语) (顺序)(次操作方式) ()是可选对象例:树查询p_xxxxTree_Sel树节点查表p_xxxxTab_Sel主特征表查询P_xxxxByChr_Sel明细特征表查询P_xxxxByDtlChr_Sel查询所有p_xxxxx_SelA独立选择框树P_xxxxTree_Cho独立选择框树查表P_xxxxTab_Cho独立选择框待选项查询p_xxxxByChr_Cho独立选择框已选择项查询P_xxxxSeled_Cho业务绑定选择框树P_xxxxforxxxTree_Cho业务绑定选择框树查表P_xxxxforxxxTab_Cho业务绑定选择框普通查询p_xxxxforxxxByChr_Cho业务绑定已选择项查询P_xxxxforxxxSeled_Cho除主页面查询外的其他条件查询P_xxxxByxxxx_Sel新增P_xxxx_Add修改P_xxxx_Mod删除P_xxxx_Del删除前检查P_xxxx_ChkBfDel初始化P_xxxx_IniBfxxx新增,修改,删除任选合一P_xxxx_Save方法命名规则F_getxxx //函数使用GET内部过程命名规则E_xxxxByxxx_Mod//内部方法E _xxxx_ChkDelE _xxxx_ChkModE _xxxxByxx_Mod二、变量命名规范1.摘要表引用变量命名尽量定义在pkg_bom_define中防止重复定义Dt_xxxxx 如:dt_cnctype_jp2.自定义常量命名尽量定义在pkg_bom_define中防止重复定义Const_xxxx 如:const_Leaf3.自定义变量尽量定义在包头防止各过程重复定义Var_xxxx 如:var_curpage 字符型变量Flt_xxxx 如:flt_monery浮点型变量Num_xxxx 如:num_pagecount数字型变量三、RECORD命名规范Record命名:1.普通对象:Xxxx_Rec 例:Type Role_Rec is Record2.树对象:XxxxTree_Rec 例: Type RoleTree_Rec is Record四、游标定义规范1.对外返回游标普通游标c_xxx 树游标c_xxxTree例:type c_role is ref cursor return role_Rec; --返回角色信息游标2.内部使用动态游标cur_xxx例:for cur_num in c_num1(i_role_class) loop五、类型自定义对象及table对象命名规范1.自定义对象命名对象名=模形名称_OBJ 例:CALENDAR_OBJ2. 自定义TABLE命名名称=模形名称_ OBJ_ARRAY 例:CALENDAR_OBJ_ARRAY六、入参自定义类型名称规范自定义table类型入参数命名入参集对象命名=i_模型名称_array例:i_hour_arrayprocedure Ssp_BfHourdelete_check(i_hour_array in HOUR_OBJ_ARRAY, --工时对象o_Return_Code Out Varchar2, --返回代码o_Error_Message Out Varchar2, --错误信息o_Sqlerrm Out Varchar2 --错误sql信息)is七、JAVA方法命名规范在dao接口中命名规范如下:原则:1、过程中P开头的需要定义方法,其他则不需要2、方法命名公式:方法名=操作及修饰+对象条件参考:过程公式:过程名=标识+对象条件+操作及修饰例:过程名:P_xxxx_ChkBfDel JA V A方法名:chkBfDelxxx过程名:P_xxxxTree_Sel JA V A方法名:queryXxxxTree过程名:P_xxxx_Mod JA V A方法名:modXxxx过程名:P_xxx_SelA JA V A方法名:queryAllXxx注意事项:1、如果过程结尾是Sel 或SelA JA V A方法为query 或queryAll2、如果过程结尾是Cho JA V A方法为queryXxxxCho其他则严格按原来的过程命名规则定义JA V A方法名称。

Oracle数据库编码规范

Oracle数据库编码规范

Oracle数据库编码规范1目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

2适用范围本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

3规范3.1书写规范丑陋的书写规范不仅可读性较差,而且给人以敬而远之的感觉;而良好的书写规范则给人以享受和艺术的体验。

3.1.1大小写风格规则3.1.1.1所有数据库关键字和保留字命名使用大小写不做要求。

3.1.2缩进风格规则3.1.2.1程序块严格采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2/4个。

必须使用空格,不允许使用【Tab】键。

以免在用不同的编辑器阅读程序时,因【Tab】键所设置的空格数目不同而造成程序布局不整齐。

规则3.1.2.2当同一条语句需要占用多于一行时,每行的其他关键字与第一行的关键字进行右对齐。

IF flag = True THENSelect usernameInto vUserInfoFrom userInfoWhere userId = ‘id’END IF;3.1.3空格及换行规则3.1.3.1不允许把多个语句写在一行中,即一行只写一条语句且一行最长不能超过80字符;规则3.1.3.2避免将复杂的SQL语句写到同一行,建议要在关键字和谓词间换行。

WHERE子句书写时,每个条件占一行。

规则3.1.3.3相对独立的程序块之间必须加空行。

BEGIN、END独立成行。

3.1.4其它规则3.1.4.1确保变量和参数在类型和长度上与表数据列相匹配。

如果与表数据列宽度不匹配,则当较宽或较大的数据传进来时会产生运行异常。

3.2命名规范对于命名规范来说,想要做到完全统一的确是不可能的任务。

命名规范更多的是个人层面的爱好,既使无法完全做到一致,但是我们仍然要尽量去遵守。

3.2.1字段命名规范在此仅提供几种常见的命名方法,如表3-2-1所示。

表3-2-1 命名规范表规则3.2.1.1不建议使用数据库关键字和保留字,原因是为了避免不必要的冲突和麻烦。

ORACLE数据库命名编码规范

ORACLE数据库命名编码规范

ORACLE 数据库命名编码规范1、编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承,在实现业务功能的同时具有较佳的运行性能。

2、适用范围本规范适用于公司范围内所有以ORACLE 作为后台数据库的应用系统和项目开发工作。

3、对象命名规范应遵守的通用规则1、必须使用拼写正确的英文单词。

不允许使用汉语拼音或者其他首拼等缩写。

2、词汇必须完整。

不允许使用随意的简写形式。

3、如果名字代表复数意义,应使用其正确的复数形式。

4、约定俗成的字母缩写,可作为一个单词使用。

5、应尽量将标志符的意义描述清楚。

即使用一个以上的单词来表示一项内容。

6、所有的对象名都是大写3.1数据库和SID1、全局数据库名和例程SID 名要求一致2、数据库名定义为系统+功能名称,例如核心业务生产,可以命名为lisprod3、因SID名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符3.2表空间建议在表空间的命名前面统一加上系统名,比如一个数据库有多个系统的DATA的情况下1、面向用户的专用数据表空间以系统名_用户名++DATA 命名,如AUD 用户专用数据表空间可命名为PI_AUD_DATA(PI表示个险)2、面向用户的专用索引表空间以系统名_用户名+_+IDX 命名3、面向用户的专用临时表空间以系统名_用户名+_+TMP 命名4、面向用户的专用回滚段表空间以系统名_用户名+_+RBS 命名5、面向应用的表空间以系统名_应用名+_DATA/系统名_应用名+_IDX/系统名_应用名+_TMP/应用名+_RBS 命名6、 LOB 段数据专用表空间以其数据表空间+_+LOBS 命名,如上例中数据表空间为AUD_DATA,则LOB 段表空间可命名为AUD_DATA_LOBS7、表空间文件表空间文件命名以表空间名+两位数序号(序号从01 开始)组成,如AUD_DATA01 等3.3表3.3.1表和视图的命名表要存放在所对应的表空间下,命名的时候可以加上表空间的简称, 表命名要遵循以下原则1、一般表采用模块名+_+表义名” 格式构成2、若数据库中只含有单个模块,命名可采用“表义名”格式构成3、模块名或表义名均以其英文的字符命名,4、表别名命名规则:取表义名的前3 个字符加最后一个字符。

【精编推荐】Oracle存储过程开发规范与技巧

【精编推荐】Oracle存储过程开发规范与技巧

【精编推荐】Oracle存储过程开发规范与技巧存储过程开发规范与技巧开发规范1.书写规范1):程序头书写规范程序头开始部分应说明程序整体的功能,存储过程名称,编写人,编写日期,修改人,修改日期,版本号以及过程涉及的表和视图。

示例如下:-----------------------------------------------------------------------------/*名称及实现功能:版本: ( 版本号标示:新建 V1.0.0 小的修改变为V1.0.1 大的修改V1.1.0 重构V2.0.0)Create by***Create Date2006-06-29Update by*** update Date2006-06-30修改原因:Update by*** update Date2006-06-31修改原因:涉及的表或视图:dump_init 辅助表(DM):记录存储过程中使用的物化视图日志序号mlog$_acrcusmrsecindex 源表(ODS):客户第一索引物化视图日志,使用同义词ft_gld_customerdata 目标表(DM):客户事实表*/CREATE OR REPLACE PROCEDURE *******------------------------------------------------------------------------------ 2):代码书写规范1.语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、Sql保留字大写。

2.连接符or、in、and、以及=、<=、>=等前后加上一个空格。

3.where子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,连接符右对齐。

4.查询的WHERE过滤,原则应使过滤记录数最多的条件放在最前面。

5.多表连接时,使用表的别名来引用列。

6.查找数据库表或视图时,只能取出确实需要的那些字段,不要使用*来代替所有列名。

oracle clob 存储过程参数

oracle clob 存储过程参数

oracle clob 存储过程参数
OracleCLOB存储过程参数是指在使用Oracle数据库时,通过存储过程来处理CLOB类型数据所需的参数。

CLOB类型是一种用于存储大型文本数据的数据类型,它可以存储最多4GB的数据。

在存储过程中处理CLOB类型数据时,需要使用特定的参数类型来保证数据的正确获取和处理。

在Oracle中,存储过程是一种可重复使用的程序,可以在数据库中执行多次。

存储过程可以接受不同的参数类型,包括CLOB类型参数。

在处理CLOB类型参数时,Oracle提供了两种参数类型:CLOB 和NCLOB。

CLOB类型参数用于存储ASCII字符集,而NCLOB类型参数用于存储Unicode字符集。

当需要处理包含不同字符集的文本数据时,应根据文本数据的字符集类型选择相应的CLOB参数类型。

在存储过程中使用CLOB类型参数时,需要使用Oracle提供的特定函数来获取和处理数据。

常见的函数包括dbms_lob.getlength(用于获取CLOB类型数据的长度)、dbms_lob.substr(用于获取CLOB类型数据的子字符串)和dbms_lob.write(用于向CLOB类型数据中写入数据)等。

需要注意的是,在使用存储过程处理CLOB类型参数时,需要对CLOB类型参数进行适当的转换和处理,以避免出现数据丢失或格式错误等问题。

因此,在编写存储过程时,需要仔细考虑参数的类型和处理方式,以确保程序的正确性和稳定性。

存储过程编码规范

存储过程编码规范

密级:秘密-MM发行:项目名:技术部--ALL配置项类型:PS配置项编号:012版本号:2001-06状态:1分册名称:第1册/共1册SQL SERVER存储过程编写规范福建中科讯信息技术有限公司发行对象:发行通知单NO. 1.0文件认可评审者:日期:/ /(部门经理)认可者:日期:/ /(客户代表)分发清单:拷贝编码发行日期发布给1 1.0 部门经理2 1.0 客户代表3 1.0 文件档- 公司联机拷贝文件更改摘要:更改的部分只有在完全替换其所在的章节并在上面附上由部门经理签名的发行通知单才能被发布。

修订记录日期修订说明修订人1创建存储过程的语法use <database name>goif exist …drop PROCEDURE <usename>.<procedure_name>gosetsetCREATE PROCEDURE <usename>.<procedure_name>[[(]@parameter_name datatype [OUTPUT][,@parameter_name datatype [OUTPUT]]..[]]ASBeginSQL_statementsEndGoSetSet2存储过程命名约定存储过程的命名必须符合P_调用分类_功能分类_详细名称格式,其中 P表示是存储过程,详细名称是与存储过程意义相关联的汉语拼音首字母。

按功能分类:查询类:CX数据维护类:WH业务处理类:YW例: P_YW_GFQS3变量名参数命名约定:@a+变量类型+’_’+名称,变量类型用小写, 名称用大写。

变量类型前缀Integer @ai_Smallinteger @asi_Tinyint @ati_Varchar @avc_Char @ac_Numeric @an_Datetime @adtSmalldatetime @asdt内部变量命名约定:@+变量类型+’_’+名称,变量类型用小写, 名称用大写。

Oracle存储过程开发规范与技巧

Oracle存储过程开发规范与技巧

存储过程开发规范与技巧开发规范1.书写规范1):程序头书写规范程序头开始部分应说明程序整体的功能,存储过程名称,编写人,编写日期,修改人,修改日期,版本号以及过程涉及的表和视图。

示例如下:-----------------------------------------------------------------------------/*名称及实现功能:版本: ( 版本号标示:新建 V1.0.0 小的修改变为V1.0.1 大的修改V1.1.0 重构V2.0.0)Create by***Create Date2006-06-29Update by*** update Date2006-06-30修改原因:Update by*** update Date2006-06-31修改原因:涉及的表或视图:dump_init 辅助表(DM):记录存储过程中使用的物化视图日志序号mlog$_acrcusmrsecindex 源表(ODS):客户第一索引物化视图日志,使用同义词ft_gld_customerdata 目标表(DM):客户事实表*/CREATE OR REPLACE PROCEDURE *******------------------------------------------------------------------------------ 2):代码书写规范1.语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、Sql保留字大写。

2.连接符or、in、and、以及=、<=、>=等前后加上一个空格。

3.where子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,连接符右对齐。

4.查询的WHERE过滤,原则应使过滤记录数最多的条件放在最前面。

5.多表连接时,使用表的别名来引用列。

6.查找数据库表或视图时,只能取出确实需要的那些字段,不要使用*来代替所有列名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE存储过程编码规范
1.1变量规范
变量名、常量名、参数名、函数名、存储过程名、包名等所有对象全部用英文拼写,不允许用汉语拼音,多个单词间用下划线分割。

全局常量全部用大写,全局变量全部用小写,且全局变量尽量避免使用。

局部变量全部小写,使用“v_”开头,输入参数以“i_”开头,输出参数以“o_”
开头,输入输出参数用io_开头。

游标的定义:游标统一用前缀“cur_”命名
当变量代表列时,使用%TYPE属性,当变量实际上表示数据库表的某列数据时,为避免数据库结构修改对变量的影响,应统一使用%TYPE属性对变量命名
1.2显示游标规范
外部查询的多行数据返回使用游标进行处理,通过传递游标变量的形式返回数据到外部接口,由外部程序自行FETCH数据。

打开游标前,必须显式检查游标的%ISOPEN属性。

使用FETCH语句后,要立即检查%NOTFOUND属性,以便正常终止游标FETCH 循环。

无论PL/SQL程序是正常终止还是出错退出,都要关闭所有已打开的游标。

在出错退出时,应该在其异常处理部分管理所有游标,这可以释放一部分的系统资源
1.3事务处理规范
在需要分割事务以使主事务的提交或者回滚独立于子事务的提交及回滚时,应使用自动提交事务。

所有的存储过程均统一在结束处统一COMMIT或者ROLLBACK。

1.4错误处理规范
凡是涉及到表操作(insert,update,select,delete)的sql语句,都必须进行错误捕捉,不能将错误带到后面的语句
从表中SELECT数据INTO到指定变量中的SQL语句,应严格区分NO_DATA_FOUND 和TOO_MANY_ROWS的错误,并将相应错误信息填入错误信息
⏹NO_DA TA_FOUND 多数为查询条件问题导致无数据返回(用户级错误)
⏹TOO_MANY_ROWS 应该是数据表内数据异常导致(系统级错误)
所有存储过程(函数)的统一出口一律在存储过程的结束部分,不允许中间返回
在每一个异常处理部分,都要定义WHEN OTHER 子程序,以便捕获所有没有显示处理或其他类型的异常
所有程序中捕获到的错误,均转换成对应的errcode,errmsg,通过输出参数返回给调用者,所有存储过程(函数)结束前应统一捕获系统异常
在每个存储过程(函数)的入口处统一先将返回错误代码(errCode)设置为-1,功能处理成功结束后再将错误代码(errCode)设置为0(成功),避免程序过程中因错误未能正确
捕获,导致功能未能完成,而程序却成功返回的情况出现
1.5书写规范
PL/SQL语句的所有表名、字段名遵照数据字典的定义,系统保留字、内置函数名、PL/SQL保留字、所有脚本全部大写。

连接符OR、IN、AND、以及=、<=、>=等前后加上一个空格。

对较为复杂的SQL语句加上注释,说明算法、功能。

注释风格:注释单独成行、放在语句前面。

应对不易理解的分支条件表达式加注释;
对重要的计算应说明其功能;
过长的函数实现,应将其语句按实现的功能分段加以概括性说明;
常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围
可采用单行/多行注释。

(-- 或/* */ 方式)
TAB 统一定义为4个空格,建议使用PL/SQL作为SQL书写工具
多表连接时,使用表的别名来引用列。

一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。

1.6书写优化性能建议
大量的排序操作影响系统性能,所以尽量减少ORDER BY和GROUP BY排序操作。

如必须使用排序操作,请遵循如下规则
⏹排序尽量建立在有索引的列上
⏹如结果集不需唯一,使用UNION ALL代替UNION
索引的使用
⏹尽量避免对索引列进行计算,这样索引会失效
⏹尽量注意比较值与索引列数据类型的一致性
⏹索引中,尽量避免使用NULL
⏹对于索引的比较,尽量避免使用!= 查询列和排序列与索引列次序保持一致
尽量避免相同语句由于书写格式的不同,而导致多次语法分析。

查询的WHERE过滤原则,应使过滤记录数最多的条件放在最前面。

任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。

IN、OR子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。

相关文档
最新文档