ORACLE编码规范

合集下载

ORACLE修改数据库的字符集编码为UTF-8

ORACLE修改数据库的字符集编码为UTF-8

ORACLE修改数据库的字符集编码为UTF-81、查看数据库字符集?数据库服务器字符集:select * from nls_database_parameters,其来源于props$,是表⽰数据库的字符集。

客户端字符集环境:select * from nls_instance_parameters,其来源于v$parameter,表⽰客户端的字符集的设置,可能是参数⽂件,环境变量或者是注册表会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters,表⽰会话⾃⼰的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters⼀致。

客户端的字符集要求与服务器⼀致,才能正确显⽰数据库的⾮Ascii字符。

如果多个设置存在的时候,alter session>环境变量>注册表>参数⽂件字符集要求⼀致,但是语⾔设置却可以不同,语⾔设置建议⽤英⽂。

如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

2、修改Oracle的字符集,如下例把字符集GB2312修改为UTF-8 步骤: 1.在SQL*PLUS 中,以DBA登录 conn ⽤户名 as sysdba 2.执⾏转换语句: SHUTDOWN IMMEDIATE; STARTUP MOUNT EXCLUSIVE; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN; ALTER DATABASE NATIONAL CHARACTER SET UTF8; SHUTDOWN IMMEDIATE; STARTUP;注意:如果没有⼤对象,在使⽤过程中进⾏语⾔转换没有什么影响,(切记设定的字符集必须是ORACLE⽀持,不然不能start)按上⾯的做法就可以,但是可能会出现ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data existsORA-12717: 存在 NCLOB, NCHAR 或 NVARCHAR2 数据时, 不能发出 ALTER DATABASENATIONAL CHARACTER SET 命令这样的提⽰信息要解决这个问题有两种⽅法⼀个是,利⽤INTERNAL_USE 关键字修改区域设置,还有⼀个是利⽤re-create,但是re-create有点复杂,所以请⽤internal_use, SHUTDOWN IMMEDIATE; STARTUP MOUNT EXCLUSIVE; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN; ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8; SHUTDOWN IMMEDIATE; STARTUP;如果按上⾯的做法做,National charset的区域设置就没有问题。

Oracle EBS编码规范

Oracle EBS编码规范

Oracle EBS开发编码规范天马信息技术管理部(内部使用)文档变更记录目录1、引言 (5)1、编写目的 (5)2、适用范围 (5)3、文档规范 (5)2、数据库命名规范 (7)2.1表空间 (7)系统表空间 (7)用户表空间 (7)表空间数据文件 (7)2.4 表相关 (8)表名 (8)列名 (8)主键名 (8)外键名 (8)CHECK约束 (8)UNIQUE约束 (8)索引名 (9)视图 (9)2.5 PL/SQL对象名 (9)过程 (9)函数 (9)包 (9)2.6其他对象 (10)角色名 (10)序列名 (10)同义词 (10)数据库链 (10)3、SQL规范 (10)3.1 CREA TE (11)3.2 SELECT (11)3.3 INSERT (11)3.4 UPDA TE (11)3.5 DELETE (11)5、PL/SQL开发规范 (11)5.1代码 (11)5.2对象名 (12)5.3参数 (12)5.4变量常量 (12)6、Operation System Files(操作系统档案) (13)7、OAF开发规范 (13)命名空间 (13)8、Applications Objects(系统对象) (13)9、Documentation (文件) (14)10、开发评分标准 (15)1、引言1、编写目的运用统一的数据库平台规范,对数据库及EBS整体命名以及编码风格进行标准化,便于管理开发以及维护人员进行阅读、交流与理解。

2、适用范围本规范适用于所有以ORACLE EBS 为平台客制化开发的项目团队及维护团队。

3、文档规范《MMM》表示命名为在实际情况下MMM所表示的内容为模块缩写。

并非MMM本身。

AA + BB + CC表示名称为AABBCC。

AA + BB + CC/DD表示名称为AABBCC或AABBDD。

英文缩写对于英文单词较长的情况下,使用辅音缩写,缩写参照英文缩写规范,并尽量使用通用的缩写方式。

oracle字符串排序规则

oracle字符串排序规则

oracle字符串排序规则Oracle字符串排序规则在Oracle数据库中,字符串的排序规则是按照字符的Unicode编码值进行排序的。

Unicode编码是一种字符集,它为全球各种语言的字符定义了唯一的编码值。

在Oracle中,字符串排序规则遵循Unicode编码顺序,即根据字符的编码值进行排序。

在Oracle中,字符串排序规则是基于字符的编码值从小到大进行排序的。

这意味着在排序过程中,先出现在Unicode编码表中的字符会排在前面,后出现在编码表中的字符会排在后面。

例如,字母"A"的Unicode编码值是65,字母"B"的Unicode编码值是66,所以在排序时,"A"会排在"B"的前面。

除了字母外,数字和特殊字符也遵循相同的排序规则。

数字的排序是基于其对应的Unicode编码值进行的,数字0的编码值是48,数字1的编码值是49,以此类推。

特殊字符如空格、逗号、句号等也有对应的编码值,它们的排序顺序也是按照Unicode编码值从小到大排序。

在Oracle中,字符串排序规则是大小写敏感的。

这意味着大写字母会排在小写字母的前面。

例如,字符串"Apple"会排在字符串"banana"的前面,因为字母"A"的编码值小于字母"b"的编码值。

如果想要忽略大小写进行排序,可以使用特殊的排序函数进行处理。

在Oracle中还可以根据需要定制字符串的排序规则。

可以使用COLLATE子句来指定排序规则,如COLLATE BINARY表示使用二进制排序规则,COLLATE NOCASE表示不区分大小写进行排序等。

这些定制的排序规则可以满足不同场景下的排序需求。

总结起来,Oracle字符串排序规则是基于字符的Unicode编码值进行排序的。

排序顺序是根据字符在Unicode编码表中的先后顺序来确定的,同时大小写敏感。

ORACLE SQL编写规范(v1.1)

ORACLE SQL编写规范(v1.1)
2
1.SQL(PL/SQL)编码格式规范
一些第三方开发工具,例如TOAD等,都有比较好的格式化功能,大家可以用 其做风格统一和美化使用,以下是自定义的一套规范,可以供大家参考。


大小写风格
所有数据库的关键字和保留字均使用大写,对象名称、列名称则使用小写。 缩进风格
程序块以及SQL均采取统一的缩进风格书写,保持代码的清晰易懂,风格一致,
ANSI标准写法:使用RIGHT(LEFT) OUTER JOIN ON来实现外连接
SELECT i.first_name, st_name, z.state FROM instructor i RIGHT OUTER JOIN zipcode z ON i.zip = z.zip GROUP BY i.first_name, z.state;
7. FOR UPDATE语句使用注意
FOR UPDATE语句的作用在于并发环境下,某用户将查询到的数据加锁,以
便后续的操作过程中,该数据不会被其他用户所修改,这通常用于一些公共模块的 公共处理场景。
由于锁定操作势必会影响到并发性,所以原则就是尽量把条件限定严格,使
锁定的记录数最少,并且在后续的操作完成后尽快提交或回滚事务,以便其他用户 能尽快得到锁资源。 除特殊原因外,严格禁止不加过滤条件的SELECT语句中使用FOR UPDATE 子句。
多表连接的ANSI写法:
SELECT s.section_no, c.course_no, c.description,i.first_name, st_name FROM course c JOIN section s ON (s.course_no = c.course_no) JOIN instructor i ON (i.instructor_id = s.instructor_id);

oracle sql developer 编码格式

oracle sql developer 编码格式

一、介绍Oracle SQL Developer编码格式的重要性Oracle SQL Developer是一款用于管理Oracle数据库的集成开发环境(IDE),它不仅可以用于编写和执行SQL语句,还可以进行数据建模、数据导入导出等操作。

在使用Oracle SQL Developer时,编码格式的设置至关重要,它直接影响到SQL语句的正确性和可读性。

了解和正确设置Oracle SQL Developer的编码格式对于数据库开发人员来说至关重要。

二、Oracle SQL Developer编码格式的设置方法1. 打开Oracle SQL Developer并登入到需要操作的数据库2. 点击菜单栏中的“工具”-“首选项”-“代码编辑器”-“文件编码”选项3. 在文件编码选项中,可以选择默认的文件编码格式,一般情况下默认为UTF-84. 确定设置后,关闭首选项窗口,设置即生效。

三、UTF-8编码格式在Oracle SQL Developer中的应用UTF-8是一种针对Unicode的可变长度字符编码,它可以表示Unicode标准中的任何字符,并且在互联全球信息站有广泛的应用。

在Oracle SQL Developer中,使用UTF-8编码格式可以很好地支持中文、英文等多种语言的字符,保证数据库操作的正确性和稳定性。

四、常见的编码格式错误及解决方法1. 中文乱码:在使用Oracle SQL Developer进行数据库操作时,有时会出现中文乱码的情况。

这通常是由于数据库和Oracle SQL Developer的编码格式设置不一致导致的。

解决方法是统一数据库的编码格式,并在Oracle SQL Developer中设置相应的文件编码格式。

2. 数据录入错误:如果在使用Oracle SQL Developer进行数据录入时出现字符错误或丢失的情况,很可能是由于编码格式不匹配所致。

在这种情况下,需要检查数据库和Oracle SQL Developer的编码格式设置,并做出相应的调整。

oracle sysguid 规则

oracle sysguid 规则

oracle sysguid 规则Oracle SYS_GUID 规则Oracle SYS_GUID 是Oracle数据库中用于生成全局唯一标识符(GUID)的内建函数。

SYS_GUID 函数返回一个RAW(16 字节)值,该值在全球范围内具有唯一性。

它可以用作主键、唯一标识符或其他需要全局唯一性的标识符。

SYS_GUID 函数在Oracle数据库中使用以下规则生成全球唯一标识符:1. 生成算法:SYS_GUID 函数使用主机名、实例标识符、进程标识符、时间戳和其他因素作为种子,并计算出一个唯一的标识符。

2. 固定长度:SYS_GUID 返回固定长度的字符串,长度为16字节,或者说是32个十六进制字符。

3. 全局唯一性:由于生成算法的复杂性和使用多个因素作为种子,SYS_GUID 生成的标识符在全球范围内具有唯一性。

即使在不同的数据库实例和不同的时间产生的SYS_GUID 标识符也不会有冲突。

4. 不可预测性:SYS_GUID 生成的标识符在一定程度上是不可预测的。

由于算法使用主机名、时间戳等变量作为种子,在不同的环境下生成的标识符具有一定的随机性。

使用SYS_GUID 函数有以下注意事项:1. 数据类型转换:SYS_GUID 函数返回一个 RAW 数据类型的值,通常需要将其转换为其他数据类型进行存储和使用。

可以使用该函数和其他Oracle函数进行数据类型转换。

2. 主键和唯一标识符:SYS_GUID 函数生成的标识符可以用作表的主键或唯一标识符,确保数据库中的数据在全球范围内保持唯一。

3. 性能影响:由于SYS_GUID 函数的计算复杂性和生成的标识符长度较长,使用SYS_GUID 作为主键可能会对数据库性能有一定的影响。

在设计数据库时需要权衡使用SYS_GUID 的需求和性能要求。

总结:Oracle SYS_GUID 提供了一种在全球范围内生成唯一标识符的方法。

它使用复杂的算法和多个因素作为种子,保证了生成的标识符的唯一性。

oracle数据库字符串排序规则

oracle数据库字符串排序规则

Oracle数据库中的字符串排序规则是由数据库的排序规则(Sort Order)决定的。

排序规则定义了字符的比较和排序方式,以确定字符串的顺序。

在Oracle数据库中,常见的排序规则有以下几种:
1. BINARY:这是默认的排序规则,按字符串的二进制编码进行排序。

它对大小写敏感,按照字符的Unicode值进行排序。

2. NCHAR:用于对Unicode字符进行排序的规则。

它会考虑字符的语言环境和字符集,可以正确地处理多种语言的排序需求。

3. EBCDIC:用于EBCDIC字符集的排序规则。

EBCDIC是一种用于早期计算机系统的字符编码标准,此规则适用于使用该字符集的场景。

4. GERMAN:用于德语排序的规则。

它考虑了德语特定的排序规则,如字母的重音标记、大小写变化和特殊字符的排序顺序。

5. FRENCH:用于法语排序的规则。

它考虑了法语特定的排序规则,如重音标记和特殊字符的排序顺序。

6. SPANISH:用于西班牙语排序的规则。

它考虑了西班牙语特定的排序规则,如重音标记和特殊字符的排序顺序。

以上仅为Oracle数据库中一些常见的排序规则示例,实际上还有其他的排序规则可用。

在创建数据库或表时,可以指定所需的排序规则,或者使用数据库默认的排序规则。

可以通过查询NLS_SESSION_PARAMETERS视图查看当前会话中使用的排序规则。

oracle decimal格式

oracle decimal格式

oracle decimal格式摘要:1.Oracle 中的Decimal 格式2.Decimal 格式的组成3.Decimal 格式的规则4.Decimal 格式的示例正文:Oracle 中的Decimal 格式是指在Oracle 数据库中,用于存储和处理十进制数字的一种数据类型。

它可以精确地表示十进制数字,并支持小数点后的位数自定义。

Decimal 格式在Oracle 数据库中具有广泛的应用,例如在财务、会计等领域。

Decimal 格式的组成包括以下几个部分:1.符号位:符号位用于表示数字的正负。

一般情况下,正数用0 表示,负数用1 表示。

2.整数部分:整数部分用于表示数字的整数部分,其位数可以根据需要进行自定义。

3.小数点:小数点用于分隔整数部分和小数部分。

4.小数部分:小数部分用于表示数字的小数部分,其位数也可以根据需要进行自定义。

Decimal 格式的规则如下:1.符号位为1 位,范围为0-9。

2.整数部分为1-14 位,范围为0-9。

3.小数点为1 位,范围为0-9。

4.小数部分为1-28 位,范围为0-9。

Decimal 格式的示例:假设我们要在Oracle 数据库中存储一个精确到小数点后两位的十进制数字123.45,可以使用Decimal 格式进行存储。

具体方法是:1.在创建表时,定义一个Decimal 类型的字段,例如:CREATE TABLE example (id NUMBER(14, 2));2.在插入数据时,将数字123.45 插入到Decimal 类型的字段中,例如:INSERT INTO example VALUES (123.45);3.在查询数据时,可以直接查询Decimal 类型的字段,例如:SELECT * FROM example;通过以上示例,我们可以看到如何在Oracle 数据库中使用Decimal 格式存储和处理十进制数字。

oracle jdbc 编码

oracle jdbc 编码

在使用Oracle JDBC(Java数据库连接)进行编码时,可能出现的一个常见问题是字符集编码。

Oracle数据库通过使用不同的字符集支持多种文字和编码。

为了确保Oracle JDBC与数据库之间正确处理编码,您需要配置连接字符串以插入正确的字符集。

以下是一个使用Oracle JDBC驱动程序进行编码的示例:首先,请确保您已导入Oracle JDBC驱动程序(通常是一个名为`ojdbc8.jar`或`ojdbc6.jar`的JAR文件)到Java项目中。

然后,您可以创建一个连接到Oracle数据库并处理编码的示例Java类:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class OracleJDBCExample {public static void main(String[] args) {String url = "jdbc:oracle:thin:@//host:port/service";String user = "username";String password = "password";// Oracle JDBC驱动程序的注册try {Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException exception) {System.err.println("Oracle JDBC Driver not found!");exception.printStackTrace();return;}try (// 使用URL、用户名、密码和字符集创建数据库连接Connection connection = DriverManager.getConnection(url +"?oracle.jdbc.defaultNChar=true", user, password);// 创建语句对象Statement statement = connection.createStatement();// 执行查询并获取结果集ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name"); ) {// 处理结果集while (resultSet.next()) {String columnName = resultSet.getString("column_name");System.out.println(columnName);}} catch (SQLException exception) {System.err.println("Error connecting to the database!");exception.printStackTrace();}}}在此示例中,请取代`host`、`port`、`service`、`username`和`password`以配合您的Oracle数据库实例。

doc oracle al16utf16编码

doc oracle al16utf16编码

1. 什么是AL16UTF16编码?AL16UTF16编码是Oracle数据库中用于支持Unicode字符集的一种编码方式。

Unicode字符集是一种国际标准,用于表示世界上几乎所有语言的字符。

它包含了多种编码方式,其中AL16UTF16是Oracle数据库中常用的一种。

2. AL16UTF16编码的特点AL16UTF16编码特点AL16UTF16编码采用固定长度的编码方式,每个字符占用两个字节。

这种编码方式可以表示Unicode字符集中的所有字符,包括中文、日文、韩文等各种语言的字符。

AL16UTF16编码支持存储大容量的数据,可以满足大规模应用的需求。

它还可以在不同的操作系统和评台之间进行数据转换和交换,保证数据的完整性和一致性。

AL16UTF16编码是Oracle数据库中默认的Unicode字符集编码方式,可以在创建数据库时选择使用它来支持多语言环境下的数据存储和处理。

3. AL16UTF16编码的使用场景AL16UTF16编码主要用于以下场景:多语言环境下的数据存储和处理。

在国际化的应用程序中,通常会涉及到不同语言的数据处理和显示,AL16UTF16编码可以很好地支持这种场景。

跨评台数据交换。

由于AL16UTF16编码可以在不同操作系统和评台之间进行数据转换,因此在数据交换和共享的场景中也经常会用到它。

大容量数据存储和处理。

一些需要处理大容量数据的应用程序,尤其是需要支持多语言的大型企业应用,通常会选择AL16UTF16编码来存储和处理数据。

这样可以保证数据的完整性和一致性。

4. 如何在Oracle数据库中使用AL16UTF16编码?可以以下步骤在Oracle数据库中使用AL16UTF16编码:在创建数据库时选择AL16UTF16编码。

在创建数据库实例或新的数据库时,可以选择AL16UTF16编码来支持Unicode字符集。

修改数据库的字符集。

对于已经创建的数据库,如果需要改变字符集为AL16UTF16编码,可以使用ALTER DATABASE语句来修改数据库的字符集设置。

Oracle数据库编程规范

Oracle数据库编程规范

密级公开()普通(√)秘密()机密()绝密()Oracle数据库编程规范文档编号:<文档编号(按照文档编码规范)>文档归类:<文档归类>作者:李程扬创建时间:2005-11-14修改时间:2005-11-15版本号:v1.0文档传阅:一、数据库对象创建及命名规范1、数据库字段及对象命名规范a.数据库命名规范与PB编程规范对命名方式的约定可相互参照;b.命名单词间分隔用下划线[_],尽可能使用与业务相匹配的单词或其缩写;c.绝对不允许使用拼音首码及简单数字的命名方式;d.Oracle对于对象或字段名称长度有限制,最多31个字符;2、字段定义及类型说明a.字段定义仅能使用以下类型i.date:日期时间类型,存入日期字段的数据若未指明时间,时间缺省就是[00:00:00];若未指明日期,则日期缺省是[1900-01-01];对于年份[number(4,0)]与月份[number(6,0)]这类数据,一般用number类型定义;ii.number:数值类型,字段所占空间与每一行数据相关,即有多少存多少;要注意其定义小数位是包含在总长度中,如number(12,2)——总长度为12位,其中小数占2位;iii.char:定长字符串类型,不论字符串信息多少都要占用所定义长度的空间,不足的部分用空格填充;对于一些更新操作比varchar2效率高;长度限制为255;iv.varchar2:非定长字符串类型,字符串信息多少就占多少空间,所以对于此类型数据在存入数据库前要去空格,以防止多余空格造成字段关联错误;相比char可节省很多存储空间,某种程序上可提高网络传输效率;长度限制为4000个字符;v.clob:一般存大于4000个字节的字符串信息,如数据窗口的语法;vi.blob:一般存二进制数据,如图片;b.对于字符串类型,除数据固定长度字段(如char(1)、SICK_ID),其它情况都必须使用varchar2类型;c.对于number与varchar2类型,在定义时要预留足够的长度,因为这两种类型都是按实际数据来分配存储空间,这样才能避免数据需求变长,字段长度修改造成程序错误(数据窗字段及数值变量小数位定义);d.应尽量使用number类型定义代码、状态字段;相比char或varchar2,这可最大程度地节省空间,并可显著提度检索效率;当然,同类型已定义的字段,为兼容原先设计,还是必须使用旧的类型定义;e.字段命名约定i.字段名称不必像PB变量使用前缀来标识其数据类型;ii.字段常用后缀如下ID/No表示唯一的序列号标识;其中ID多用于表示对人或物的标识,即指的是一种标志(如Sick_ID);而No多用于对连续号或流水号的标识(如单据号Apply_No)Code 表示项目代码(如项目代码Item_Code)Name 表示名称(如项目名称Item_Name)Class 表示类别(如单据类别Apply_Class)Operator 表示操作员(类型用varchar(27),如Apply_Operator)Time 表示日期或日期时间(如Audit_Time)Dept 表示科室(如开单科室Apply_Dept)Flag 表示标志(字段类型用char(1),值为Y或N)Status 表示状态(字段类型用char(1))iii.常见业务字段名称及类型定义如下3、数据库对象定义说明:创建对象时一定要指定是在哪个模式下面a.表i.下面列出建表步骤(一般在PB6中新建表,再拷出相应建表语法)建表语法创建主键及索引创建同义词对象授权(所有新建对象都必须授权给zhiydba)ii.对于表命名有以下常用后缀_master:主表_detail:细表_record:记录表_dict:系统字典/用户字典_config:用户配置表iii.不推荐使用表外键约束,也不推荐除空值以外的其它约束检查,这类约束判断一般在程序中处理;b.主键:一种特殊的索引i.主键名都是以pk_作为前缀,后面一部分用表名,即pk_+表名ii.所有表都必须创建主键,否则这些表就没办法做更新操作c.索引i.索引名以idx_作为前缀,后面一部分用表名+索引相关列名或其缩写ii.创建索引时一定要记得指明其所在模式(一般与表在同一模式下),这一点程序员常会遗漏;iii.索引也要区分是唯一索引还是可重复索引;iv.要查询的列尽可能创建索引,一般不推荐使用多列组合索引,而应分开建立索引;如病人ID或查询时间字段;另外,用到组合索引时要注意索引列的顺序;v.一个表索引最多不能超过7个,否则会影响数据更新效率,且占用存储空间,即:索引越多、查询效率高、但更新操作慢、存储占用高;vi.对于值内容单一(如只有0与1)或大部分数据是空值的字段不用建索引;对于某些数据量很少的表(如字典),也是不用建索引;d.视图:其命名以v_作为前缀,统一建在zhiydba模式下(可省去授权)e.序列号:其命名以_seq作为后缀,统一建在zhiydba模式下;主要用于数据表的主键字段取唯一值(如单据号),对于字典代码就没必要用序列号;f.同义词:创建相应对象的同义词主要是便于编程(public),做到对象模式无关g.用户:即模式h.函数及存储过程:除非开放接口给其它软件供应商,否则不使用这两类对象,因为包(package)就可代替其功能,并便于分类组织;i.后台包/Java包:不用深入了解,知道有这些东西就可;j.后台任务(Job):后台计划任务执行,通过dba_jobs可查询当前在执行任务;k.触发器:Oracle的触发器一般都认为在事务处理上不安全,所以除非特殊接口,否则不准使用触发器;二、Oracle常用函数1、Oracle的PL/SQL语言是对SQL的过程性语言扩展,当前Oracle的SQL语法遵循SQL92标准;2、完整PL/SQL函数集可查阅\\Research\ZHIS4_Tools\Database\Oracle8i资料\doc\server.816\a76989\toc.htm3、字符串相关函数a.||:字符串合并操作符b.trim:去字符串前后空格,一定要记住存取字符串数都要调用此函数去空格c.substr:截取字符串的一部分内容,也PB的mid函数功能一样d.to_char:将数值型或日期型数据转化为字符类型,如to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')e.lpad/rpad:在串值左/右重复填充指定的字符串,与PB的fill函数功能类似f.upper/lower:字符串都转为大写/小写4、日期相关函数a.+/-:加/减天数操作符b.to_date:将字符串类型数据转为日期型信息,如to_date('2005-11-15','yyyy-mm-dd')c.trunc:去掉时间那部分信息,常用于按日期检索数据d.add_months:增加月份5、数值相关函数:a.to_number:将字符串类型数据转为数值型,如to_number(to_char(operation_time,'yyyymmdd'))要注意,如果待转化数据包含非数字内容,就会报Oracle错误b.trunc:按指定小数位精度截取6、其它函数a.nvl:空值判断,这是很常用的函数;对于PL/SQL的空串与空值是一样的,即在SQL语法中没必要像PB一样判断空串;b.decode:条件分支判断,if elsec.sign:判断数值的符号,可用于>或<判断,常与decode合起来使用;7、伪列:在SQL语法中可以和普通列一样使用a.sysdate:取当前数据库所在服务器的时间——系统时间b.rownum:用于限制检索行数c.rowid:当前检索行的唯一内部定位标识符8、序列号取值:nextval,取序列号的下一数值9、特殊表:dual10、解析表列类型信息的命令:desc(describe)三、Oracle事务处理1、事务概念a.在PB编程中,事务开始于SQL更新操作或行锁,结束于提交(commit)或回滚操作,即一个事务的开始与结束是隐式由系统自动控制;b.在中断任何事务前(如弹出提示框或窗口),一定要把事务提交或回滚;c.注意:任何出错函数都会自动把事务回滚,再弹出相应提示;要注意判断返回值2、并发控制(锁机制/资源争用):多用户操作程序必须会遇到并发问题,数据库系统中一般通过锁来防止并发a.锁类型/锁粒度:PB编程中常用到的是排它锁,而Oracle内部处理一般是共享锁(如update/delete操作)i.行级锁:select for update语法;推荐在程序中使用;ii.表级锁:lock table语法;杜绝在程序中使用表级锁,除非是同一事务中对表的所有数据进行修改操作,否则极易引发数据库阻塞;b.死锁类型i.行间死锁:在不同事务处理中,a行与b行的锁表顺序相反;ii.表间死锁:在不同事务处理中,A表与B表的锁表顺序相反;c.死锁与阻塞:可认为两者是共生的,都源于对数据库资源未能及时释放i.死锁:Oracle对于死锁会在一定时间范围内检测到并自动解锁,但此过程需占有大量资源,大量事务并发死锁时常造成数据库变慢,客户端操作没有响应,严重情况下会引起系统崩溃;若Oracle没能及时解锁,这时数据库就会发生大量阻塞;ii.阻塞:一般是程序事务处理长时间未能提交或回滚,导致事务所占数据库资源未能释放,系统响应时间变量,大量阻塞也会使平常不会出现的行级死锁大量出现,从而使系统陷入资源争用的死循环,除非这时手工干预或引发阻塞的事务释放资源,否则最终结果必然是系统崩溃;iii.系统崩溃:指数据库系统对客户端操作无任何响应,且客户端无法连接;数据库所在服务器(一般是windows2000)对鼠标或键盘操作也无响应,这种情况下只能是重启服务器;四、数据库编程容错1、SQL执行语句容错:任何数据库操作都必须判断是否正确执行(sqlca)a.查询语句错误判断(select/cursor/execute immediate)sqlca.sqlcode:=0(正确),-1(出错),f_sqlerr/sqlca.sqlcode=100b.更新语句错误判断(update/insert/delete)sqlca.sqlcode/sqlnrows:数据更新影响行数,f_sqlerror2、PB程序错误判断a.数据窗口更新错误判断:update(true,false)=1/resetupdateb.数据窗口内部错误处理:dberror事件c.应用级错误:systemerror事件五、SQL执行效率问题1、客户端等待最占用时间的部分就是数据库操作及网络传输,网络问题不是这文档所涉及的,下面主要针对数据库操作讲一些常用优化方法;2、Oracle的SQL语法从提交命令到输出结果一般要经过以下几步:语法分析、语义分析、执行路径分析、……3、Oracle的优化方式:基于规则(base rule)/基于选择(base choose),一般推荐用基于选择(base choose)的优化方式,但可在检索语法中设置特殊的优化方式;4、SQL查询语句优化列举:尽可能利用索引,减少表间关联字段a.关联的字段不能加上使用表达式(函数、计算式等),特殊是修改数据窗口的检索条件时(SetSQLSelect),如:to_char(operation_time,'yyyy-mm-dd')=正确的写书方式应为:selectfrom dispensary_sick_price_itemwhere operation_time >= to_date('2005-11-15','yyyy-mm-dd')and operation_time < to_date('2005-11-16','yyyy-mm-dd');b.特别要注意对于字符型字段与数值参数关联(或反过来数值型字段与字符参数关联),一定要把参数先转化为与字段同样的类型,否则即使字段有建索引也没办法用到,因为Oracle分析SQL语法时会自动把字段加上相应的函数处理以匹配参数;即所有参数类型定义应与所关联字段匹配,或对类型转化要显示在参数中处理;c.多表关联时,尽可能使用主键列;d.尽可能用exists/not exists语法,而不是in/not in语法;一般若子查询数据量较小可用in语法,若子查询行数可能会超过100条,则必须使用exists语法,且Oracle的in语法有最多999行限制;e.尽量使用绑定变量,主要是动态执行的SQL语法(用动态游标),这样可在SQL执行预处理时省却语法分析阶段所占的时间,特别是在循环语句中;f.char和varchar2字段类型关连:i.char与char:不论两字段长度定义如何,都能利用索引;ii.varchar2与varchar2:也与其长度定义无关,但要注意要么后面都没空格,要么空格数量要一致才能用到索引;iii.char与varchar2:除非varchar2字段空格补足到与char定义长度一样,否则没办法用到索引;g.对于大数据量表新建索引时,一定要记得分析索引analyze index comm.PK_IC_CARD_DEPOSIT(索引名) compute statistics;5、判断SQL执行情况的方法:可通过在SQLPlus设置以下命令,然后执行所要分析的SQL语法,就可以得到其执行路径与执行时间等信息set autotrace on/set autotrace traceonly(不显示所检索的数据)set timing on6、大幅提高批量数据处理效率的方法——后台包,如床位计价、每日报表基表数据生成等;对于一些医院业务高峰常用模块(如住院摆药、单据扣费等)也常把这类业务写在后台包中处理;7、数据库连接接口:正常情况下都是使用PB原生Oracle接口,且按其客户端配置尽可能用高版本的Oracle客户端;六、数据库操作安全问题1、不准在PB的数据库管理窗口中执行SQL更新语法,必须在sqlplus执行,这样才能判断执行结果,防止更新语法写错(如where条件写漏了),以决定提交(commit)还是回滚(rollback);2、更新数据前先用相同条件的select语法查看,且把检索出的数据导出备份(用PB或程序员助手),以便出错时恢复数据(很有中能SQL语法没错,但需求是错的);3、除非是清库才使用truncate table语法(直接提交,无法回滚,且无数据库日志),否则删除所有数据只能使用delete from 语法;七、数据库管理相关1、Oracle数据库文件a.初始化文件:initzhis4.ora与spfilezhis4.ora(Oracle9i才有)b.密码文件:可用命令orapwd创建c.控制文件:control filed.数据文件:Oracle系统文件、临时表空间文件、回滚段数据文件、用户数据文件e.日志文件:在线日志与归档日志2、手工启动/关闭数据库实例a.启动实例(初始化文件):startup nomount->alter database mountb.启动实例(控制文件):startup mount->alter database openc.启动实例(数据文件):startup/startup opend.关闭实例:shutdown immediate3、数据库备份机制:a.[硬件]双机热备b.[软件]文件备份(在线热备/离线冷备)c.[软件]导出备份(全库导出/增量导出)4、重建数据库相关(详细步骤参见创建数据库步骤.txt)a.修改数据库实例名:创建实例,init文件实例参数修改,重建控制文件b.数据库文件路径修改:init文件控制文件路径修改,重建控制文件c.实例名与数据库文件路径都不变:拷到相同目录,直接启动。

oracle coa编码规则

oracle coa编码规则

Oracle COA编码规则是指Oracle Chart of Accounts编码规则,是指在Oracle财务系统中,对账户进行编码时需要遵循的一套规则和标准。

这些规则和标准旨在统一账户编码格式,简化财务管理,提高数据的准确性和可比性。

下面将从COA编码规则的定义、作用、具体要求及常见问题等方面展开介绍。

一、COA编码规则的定义COA编码规则是指对Oracle财务系统中的Chart of Accounts(简称COA)进行编码时所需遵循的规则和标准。

COA是财务会计系统中的一个重要组成部分,用于记录和分类公司的各种财务交易。

而对COA 进行编码则是为了方便管理人员对公司财务数据进行统一规范的分类与管理。

二、COA编码规则的作用1. 简化财务管理:通过遵循COA编码规则,可以使财务数据的录入和管理变得更加规范和标准化,减少人为错误的发生,提高财务管理的效率和准确性。

2. 提高数据可比性:统一的COA编码规则可以使不同部门、不同项目的财务数据能够进行有效比较和分析,为公司的经营决策提供更加准确的依据。

3. 便于财务报告的生成:根据COA编码规则,公司可以更加方便地生成各类财务报告,并且这些报告之间可以进行更加直观的比较和对比。

三、COA编码规则的具体要求在Oracle财务系统中,COA编码规则通常包括以下几个方面的具体要求:1. 长度要求:COA编码的长度通常会有一定的限制,公司需要根据自身的实际情况和管理需求来设定合适的编码长度。

2. 结构要求:COA编码可能需要按照一定的结构来进行组合,比如按照公司层级、部门层级、项目层级进行区分。

3. 编码规则:对于不同类型的账户,可能需要制定不同的编码规则,包括数字编码、字母编码、符号编码等。

4. 唯一性要求:COA编码需要保证其在整个系统中的唯一性,避免因为重复编码而出现混乱和错误。

5. 易读性要求:COA编码需要具备一定的易读性,以便管理人员可以快速理解和识别各个账户的含义和类别。

oracle nls language编码

oracle nls language编码

oracle nls language编码
Oracle NLS (National Language Support) Language编码是指在Oracle数据库中,用于表示不同语言和地区的字符集和排序规
则的编码方式。

Oracle NLS Language编码是一个字符串,由两个部分组成:
1. 语言部分:表示不同语言的缩写。

例如,"AMERICAN"表
示美式英语,"FRENCH"表示法语,"GERMAN"表示德语等等。

2. 地区部分:表示不同地区的缩写。

例如,"AMERICA"表示
美洲地区,"FRANCE"表示法国,"GERMANY"表示德国等等。

通过将这两个部分合并,可以得到表示不同语言和地区的Oracle NLS Language编码。

例如,"AMERICAN_AMERICA"
表示美式英语在美洲地区的编码。

Oracle NLS Language编码在配置Oracle数据库时非常重要,
它决定了数据库如何处理不同语言和地区的数据。

通过设置正确的NLS Language编码,可以确保数据库正确地处理各种语
言和地区的数据,并正确排序和比较字符。

oracle中number数据类型的格式规则

oracle中number数据类型的格式规则

一、Number数据类型概述Oracle数据库中的Number数据类型是一种用于存储数字数据的数据类型。

它是一种非常灵活的数据类型,可以用来存储整数、小数、负数等各种类型的数字数据。

在Oracle数据库中,Number数据类型是非常常用的,因此了解其格式规则是非常重要的。

二、Number数据类型的格式规则1. 精度Number数据类型的精度指的是数字的总位数,包括小数点前面和后面的数字。

在定义Number数据类型时,可以指定其精度,如Number(10,2)表示总共10位数字,其中有2位是小数位。

精度最大可以达到38位,如果没有指定精度,默认是38位。

2. 小数位除了总位数外,Number数据类型还可以指定小数位的位数。

这样可以确保存储的数字都符合特定的小数精度要求。

如果没有指定小数位,默认是0,表示存储的数字为整数。

3. 范围Number数据类型可以存储的范围非常广泛,从极小的负数到极大的正数都可以涵盖。

在Oracle中,Number数据类型可以存储的范围是-1E-130到9.9E125。

4. 存储空间由于Number数据类型是可变精度的,因此其存储空间是动态分配的。

对于小的数字,所占用的存储空间会比较小;而对于大的数字,所占用的存储空间会比较大。

这种动态分配的特性可以节省存储空间,并且不会浪费空间。

5. 零值和空值在Oracle中,Number数据类型可以表示零值,并且可以存储空值。

这意味着Number数据类型可以完整地表示数字数据,并且可以保持数据的完整性。

6. 精度丢失在进行计算和存储数据时,由于Number数据类型的精度是有限的,可能会出现精度丢失的问题。

因此在使用Number数据类型时,需要注意保持数据的精度,避免出现数据计算不准确的情况。

三、Number数据类型的应用场景1. 金融行业在金融行业中,对于金额、利率、汇率等数字数据的精度要求非常高。

使用Number数据类型可以确保存储和计算这些数字数据时保持高精度,避免因精度丢失而引起的错误。

oracle的编码格式

oracle的编码格式

oracle的编码格式一、概述Oracle是一种广泛使用的数据库管理系统,它支持多种编码格式,包括UTF-8、UTF-16等。

在Oracle中,编码格式是指数据库中数据存储的字符集和编码方式,它决定了数据库中数据的表示和存储方式。

正确设置编码格式可以确保数据的正确存储、传输和读取。

二、编码格式的设定在Oracle中,可以通过以下几种方式设定编码格式:1.数据库参数文件:数据库启动时会自动读取参数文件中的参数设置,因此,在创建数据库时,需要将正确的编码格式设置为参数文件中的相应参数。

2.数据库实例属性:可以通过修改数据库实例的属性来更改编码格式。

具体操作方法是在数据库管理控制台中,找到相应的属性设置,并修改为所需的编码格式。

3.数据文件属性:可以将数据文件属性设置为特定的编码格式。

在创建或导入数据文件时,可以选择将其属性设置为UTF-8或UTF-16等编码格式。

三、常见的编码格式在Oracle中,常见的编码格式有UTF-8和UTF-16。

UTF-8是一种通用的编码格式,它支持多种语言字符集,适用于全球范围内的数据存储。

UTF-16则是一种基于Unicode的编码格式,它支持更多的语言字符集,但需要更多的存储空间。

四、编码格式的转换在Oracle中,可以通过使用相应的工具和命令来实现编码格式的转换。

例如,可以使用Oracle提供的`ALTERDATABASE`命令来更改数据库的默认编码格式;可以使用`ALTERSID`命令来更改特定用户的编码格式;还可以使用Oracle的数据泵工具(DataPump)来进行数据文件的编码格式转换。

五、注意事项在设置和转换编码格式时,需要注意以下几点:1.确保正确的字符集选择:应根据实际需求选择合适的字符集,以确保数据的正确表示和传输。

2.兼容性问题:在转换编码格式时,需要注意新旧字符集之间的兼容性问题,避免出现数据丢失或解析错误。

3.备份数据:在进行任何数据库操作之前,都应该先进行数据备份,以防止意外情况发生。

oracle命名规范

oracle命名规范

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

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

3、对象命名规范3.1 数据库和SID数据库名定义为系统名+模块名Ø全局数据库名和例程SID名要求一致Ø因SID名只能包含字符和数字,所以全局数据库名和SID名中不能含有“_”等字符3.2 表相关3.2.1 表空间Ø面向用户的专用数据表空间以用户名+_+data命名,如Aud用户专用数据表空间可命名为Aud_dataØ面向用户的专用索引表空间以用户名+_+idx命名Ø面向用户的专用临时表空间以用户名+_+tmp命名Ø面向用户的专用回滚段表空间以用户名+_+rbs命名Ø面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs命名ØLOB段数据专用表空间以其数据表空间+_+lobs命名,如上例中数据表空间为Aud_data,则LOB段表空间可命名为Aud_data_lobs3.2.2 表空间文件表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01等3.2.3 表表命名要遵循以下原则:Ø一般表采用“系统名+t_+模块名+_+表义名”格式构成Ø若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成Ø模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;Ø表别名命名规则:取表义名的前3个字符加最后一个字符。

如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)Ø临时表采用“系统名+t_tmp_+表义名”格式构成Ø表的命名如dft_gy_cbap:系统名(电费df)+t_+模块名(高压gy)+_+表义名(抄表安排cbap)dft_cbbj: 系统名(电费df)+t_+表义名(抄表标记cbbj)dft_tmp_hj: 系统名(电费df)+tmp+表义名(合计hj)(此处为临时表)Ø关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。

oracle coa编码规则 -回复

oracle coa编码规则 -回复

oracle coa编码规则-回复关于Oracle COA编码规则的介绍一、什么是Oracle COA编码规则?Oracle COA编码规则是指在使用Oracle软件进行企业会计核算系统(Chart of Accounts)编码时遵循的一套规范和标准。

它对企业的账户、科目和各个层级进行编码,以便进行准确的财务报表生成、分析和决策。

二、为什么需要Oracle COA编码规则?企业的会计核算系统需要有一个统一的编码规则,以确保财务报表的准确性和一致性。

如果不遵守一套编码规则,会导致企业的财务数据难以统计和分析,也会给财务报表的生成带来困难。

三、Oracle COA编码规则的基本原则1. 一致性:企业的COA编码规则应该保持一致,以确保财务数据的准确性和可对比性。

2. 简洁性:COA编码规则应该尽量简洁,并避免冗余和复杂性,以提高数据处理的效率。

3. 模块化:COA编码规则应该采用模块化的方式进行编码,即将单个科目进行分组管理。

4. 扩展性:COA编码规则应该具备扩展性,以适应企业发展和变化的需求。

5. 可读性:COA编码规则应该易于理解、易于查找和阅读,以便于用户使用和维护。

四、Oracle COA编码规则的层级结构Oracle COA编码规则通常采用层级结构,其中包括主要科目、子科目和辅助科目。

下面是一个简单的层级结构示例:- 主要科目:1-资产, 2-负债, 3-所有者权益, 4-收入, 5-费用, 6-成本, 7-其他- 子科目:1.1-流动资产, 1.2-非流动资产, 2.1-流动负债, 2.2-非流动负债, 3.1-股东权益, 3.2-利润分配等- 辅助科目:根据企业的具体需求,可以增加一级或多级辅助科目。

五、Oracle COA编码规则的其他要素除了层级结构之外,Oracle COA编码规则还可以包括其他要素,例如:1. 业务性质:根据企业的业务特点,可以增加业务性质的编码要素,以更好地区分不同的业务类型。

oracle会计科目编码

oracle会计科目编码

oracle会计科目编码全文共四篇示例,供读者参考第一篇示例:Oracle是一款广泛使用的企业资源规划(ERP)系统,会计科目编码是在Oracle系统中非常重要的一环。

会计科目编码是对企业业务活动进行分类的方式,帮助企业更加清晰地了解财务状况,进行财务分析和决策。

在Oracle系统中,会计科目编码的设计和管理是至关重要的,下面我们将深入探讨Oracle会计科目编码的相关内容。

一、Oracle会计科目编码的概念在Oracle系统中,会计科目编码是用于识别和分类不同类型的会计科目的标识符。

通常,会计科目编码由数字和字母组成,每个会计科目都有一个唯一的编码,用于标识其所属的类型和级别。

通过会计科目编码,企业可以更加方便地对财务数据进行管理和分析。

1. 结构清晰:会计科目编码的结构应该清晰明了,便于识别和区分不同类型的会计科目。

2. 层次分明:会计科目编码应该具有明确的层级结构,不同级别的科目之间应该有明确的关联关系。

3. 易于扩展:会计科目编码应该设计成能够灵活扩展的结构,以适应企业业务的变化和发展。

4. 易于理解:会计科目编码的命名和编制应该简洁明了,容易被财务人员理解和使用。

在Oracle系统中,会计科目编码通常根据不同的属性和属性值进行分类,常见的会计科目分类包括:1. 资产类科目:用于记录企业拥有的各种资产,如现金、存货、固定资产等。

2. 负债类科目:用于记录企业的各种负债,如应付账款、借款、应付工资等。

3. 所有者权益类科目:用于记录企业的所有者权益,包括股本、资本公积、未分配利润等。

4. 成本类科目:用于记录企业的各项成本,如生产成本、销售成本、管理费用等。

5. 收入类科目:用于记录企业的各项收入,如销售收入、投资收益、营业外收入等。

6. 费用类科目:用于记录企业的各项费用,如销售费用、研发费用、管理费用等。

在Oracle系统中,会计科目编码的管理是一项非常重要的工作,包括会计科目的新增、修改、删除和停用等。

oracle汉字排序规则

oracle汉字排序规则

oracle汉字排序规则
Oracle数据库中的汉字排序规则是什么?这个问题对于很多Oracle数据库开发人员来说都是一个重要的问题。

因为在Oracle数据库中,汉字排序的规则与英文排序规则是不同的。

在Oracle数据库中,汉字排序的规则遵循的是Unicode编码。

Unicode编码是一种用于表示在计算机上使用的字符集的标准编码方式。

在Unicode编码中,每个字符都有一个唯一的编码值,这个编码值就是这个字符在计算机上的唯一标识。

而在Oracle数据库中,汉字排序的规则就是根据Unicode编码值进行排序的。

具体来说,Oracle数据库中的汉字排序规则是将每个汉字的Unicode编码值拆分成三个部分:区号、位号和序号。

其中,区号表示汉字所在的Unicode区,位号表示该汉字在该区中的位序,序号则表示该汉字在该位中的序号。

根据这三个值的大小关系,Oracle数据库就可以对汉字进行正确的排序了。

需要注意的是,在Oracle数据库中,汉字排序规则的设置会影响到数据库中的各种查询操作。

因此,在进行Oracle数据库开发时,需要根据实际情况来选择合适的汉字排序规则。

同时,如果在Oracle 数据库中进行汉字排序时遇到问题,可以通过查看Oracle文档或者向Oracle技术支持人员咨询来解决。

- 1 -。

oracle coa编码规则 -回复

oracle coa编码规则 -回复

oracle coa编码规则-回复所谓“Oracle COA编码规则”指的是Oracle(甲骨文公司)中的COA 编码规则,COA全称为Chart of Accounts(科目总账),是指企业中用于记录和分类财务交易的一套编码体系。

下面将会一步一步回答有关Oracle COA编码规则的相关问题。

1. 什么是Oracle COA编码规则?Oracle COA编码规则是Oracle中用于对企业中所有财务科目进行编码的一套规则。

通过为每个科目分配一个唯一的编码,可以方便地对财务交易进行分类、统计和分析。

2. COA编码规则的目的是什么?COA编码规则的主要目的是为了建立一个一致、全面的财务科目编码体系,以支持企业的财务管理和决策。

它能提高财务数据的可读性和可视化,同时也有助于加快财务处理流程和减少错误。

3. COA编码规则的基本原则是什么?COA编码规则的基本原则可以概括为以下几点:3.1 一致性:所有科目编码都应该遵循同样的规则和原则,以确保数据的统一性和可比性。

3.2 易于理解和记忆:科目编码应该尽量简洁明了,便于财务人员理解和记忆,减少错误录入的可能性。

3.3 层次结构:科目编码应该按照一定的层次结构进行组织,以便进行分类、汇总和分析。

3.4 可扩展性:科目编码规则应该具有一定的灵活性和可扩展性,以适应企业发展和变化的需求。

4. COA编码规则的具体要求是什么?COA编码规则的具体要求包括以下几个方面:4.1 长度要求:科目编码的长度应该限制在一定范围内,通常为几位数或者几个字符。

4.2 组织结构:科目编码应该按照一定的层次结构进行组织,例如采用层级码、段码或者区号码等方式。

4.3 主要分类:科目编码应该能够对财务交易进行主要分类,例如按照资产、负债、所有者权益、收入和费用等进行分类。

4.4 细分分类:科目编码还应该能够对财务交易进行更细的分类,例如按照不同的业务部门、产品线或者地区进行分类。

5. COA编码规则的实施步骤是什么?实施COA编码规则通常包括以下几个步骤:5.1 明确需求:首先需要明确企业的财务需求和编码要求,包括科目分类、层次结构和编码长度等方面。

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

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

文件更改摘要:目录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 T ABLE AS; (15)5.4.14.使用TRUNCATE T ABLE; (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 NSER T 语句格式标准 (22)6.5. 日期、时间使用格式 (22)7.JDBC&ORACLE使用注意点 (22)7.1. 关闭自动提交功能,提高系统性能 (22)7.2. 在动态SQL或有时间限制的命令中使用S TA TEMENT对象 (22)7.3. 在成批处理重复的插入或更新操作中使用P REPARED S TA TEMENT对象 (23)7.4. 利用SQL完成数据库内的操作 (23)8.数据库设计开发约定 (23)8.1. 英文命名全部大写,单词之间用下划线分隔 (23)8.2. V ARCHAR类型字段最长为4000 (24)8.3. 所有数值型的字段统一使用NUMBER(X)/ NUMERI C(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。

2.英文使用原则1.使用英文名称时,统一使用大写。

单词之间用下划线“_”进行分隔。

使用范围包括表、视图、序列号、字段、函数、存储过程、过程包、用户名、角色名、同义词名、表空间名等。

2.单词长度大于7的可以考虑用缩写,但需报备数据库审核小组,由数据库审核小组负责形成英文单词缩写汇总表,统一所有英文单词的缩写格式。

3.逻辑对象的定义规范3.1. ORACLE表空间定义3.1.1.原则每个用户定义自已的表空间,每个用户至少一个表空间,非SYSTEM用户不得使用SYSTEM表空间。

表和索引分开存储,存放在不同的表空间,为每个用户建立单独的用于专门存放索引的表空间。

如果条件允许,应将数据量较大的表归类(大于100万条记录)单独指定表空间,并将该表空间的BLOCK_SIZE指定大于等于16K随时间推移不断增大的流水表应考虑采用分区的方式进行存储。

每个分区单独指定一个表空间与之对应。

3.1.2.命名用户表表空间命名格式:TBS_UserName 或TBS_UserName_BlockSize例如: TBS_OLAP 或 TBS_OLAP_16K索引表空间命名格式:TBS_UserName_IDX 或TBS_UserName_BlockSize例如: TBS_OLAP_IDX 或 TBS_OLAP_IDX_8K3.2. ORACLE数据文件3.2.1.数据文件的存放为了便于管理,数据文件应统一存放在指定目录3.2.2.数据文件的命名数据文件命名前缀应与表空间名一致,并加扩展名以示区别,例如:TBS_E_METADB.ORA当一个表空间有多个数据文件时,分别以表空间名加序号并加扩展名来命名各个数据文件,例如:TBS_E_ODS.ORA、TBS_E_ODS_2.ORA3.2.3.数据文件的大小每个数据文件的大小建议不超过2G3.2.4.数据文件属性将数据文件属性设置成自动扩展,以防止表空间满后出现无法插入的错误3.3. 用户管理3.3.1.用户创建每个相对独立的模型建立一个用户每个数据库实例建议另外单独建一个DBA用户,如E_DBA,平常数据库管理员用该用户进行数据库管理,只有在数据库启动和关闭时才用SYS用户进行登录。

3.3.2.用户授权普通用户仅授予CONNECT 和RESOURCE 角色权限,除DBA用户外,不得给普通用户授予DBA角色权限。

3.3.3.密码管理用户密码设置应避免使用弱密码,特别是SYS/SYSTEM和另外单独建的DBA用户。

3.3.4.用户命名规范用户名由公司标识+数据逻辑层+“_”+用途简称(英文)命名如下:⏹系统管理层:ES_(System)◆ES_SYSTEM:系统管理库;◆ES_METADB:元数据库;◆ES_WF:工作流管理;◆ES_...:其它系统管理数据库⏹接口层:EI_(Interface)◆EI_HA:沪A接口◆EI_SA:深A接口◆EI_HB:沪B接口◆EI_SB:深B接口◆EI_ST:三板接口◆EI_OF:开放式基金接口◆EI_...:其它外部接口⏹应用程:EA_(Application)◆EA_PUB:公用业务管理◆EA_FUND:资金账务管理◆EA_SEC:股份账务管理◆EA_...:其它应用数据库⏹一级历史数据◆原库名+_HIST:如E_FUND历史库,E_FUND_HIST⏹二级历史数据◆同一级历史数据,具体可以等到确定二级历史数据的管理规范后再确定。

3.4. 表定义3.4.1.表名在PowerDesigner中建模时,表的中文名称统一使用,代码+名称的格式,如柜台客户信息表的中文名称:TR_CUST_INFO客户信息表。

一般情况下,不使用前缀,但是如果一个库中的表很多(如开放式基金接口库等),为便于分类管理,也可以采用前缀标进行分类。

3.4.2.主键(PRIMARY KEY)根据实际情况,尽可能为每张表建一个唯一主键,主键字段类型最好用整数。

选择有意义的,不太长且能唯一标识记录行的列做主键,没有这种列时,才考虑使用SEQUENCE做主键。

3.5. 列3.5.1.列类型●字符型字段使用V ARCHAR2类型,除了能明确定长的字段,应尽量避免使用CHAR类型(ORACLE的CHAR类型在位数不足时会自动补空格)●V ARCHAR2的定义最多4000字符,如超出应考虑使用其它字段类型●数字型字段统一使用NUMBER型,并指定长度,整型使用NUMBER(m),如NUMBER(6);浮点型使用NUMBER(m,n),如NUMBER(8,2)等。

●日期、时间型字段使用视情况采用DA TE 型或CHAR型,一般记录日志的日期、时间字段用DA TE型。

如果日期和时间分成两个字段,可以考虑日期采用NUMBER(8),可节省存储空间和提高效率。

●尽量使用V ARCHAR2 (1)代替布尔值●使用CLOB代替LONG,BLOB代替LONG RAW●字段名缩写应有专门英文单词缩写表进行统一维护3.5.2.列长度应当根据实际需要选择列长度。

有对应web 页面的,与页面上对应列长度一致。

对数据长度的验证除数据库端实现外还要尽可能在表现层控制。

3.6. 索引●索引名统一为IDX_TableName[_x],例如IDX_TR_CUST_INFO 或IDX_M_OPLOG_2●每张表的索引不超过4个●复合索引的列不超过4个●分区表的索引统一建成本地索引(即建索引时,加LOCAL)●对于表中的数据记录频繁地被删除或插入,对这些表要经常性重建索引,使用Alter index rebuild命令。

3.7. 主键主键名统一为PK_TABLENAME3.8. 外键外键名统一为FK_TABLENAME[_X]4.表分析定期对所有的表和索引进行分析,可提高查询的性能。

ANALYZE TABLE TabName COMPUTE STA TISTICS;ANALYZE INDEX IndexName COMPUTE STA TISTICS;可写个后台定时脚本,每天晚上对用户表和索引进行一次全面的分析。

相关文档
最新文档