在Oracle中使用Guid
在Oracle中使用Guid
在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid()。
在Oracle9i和Oracle 10g 里SYS_GUID产生得到的数据是32 位的,如:234E45F0077881AAE0430AA3034681AA
但Oracle中的guid与msSql中的guid格式不完全相同。
将Oracle中的guid分割成为 Windows系统 ObjectId 的格式:{8-4-4-4-12} ,下面给出两种解决方法:
方法一:利用substr进行分割,非常简单,具体代码如下:
/**
* 创建系统Object Id 格式的字符串,返回的结果如下:{234E45F0-077A-81AA-E043-0AA3034681AA}
*/
function CreateGUID return varchar2
is
guid varchar(64);
begin
guid := SYS_GUID();
return
'{'||substr(guid,1,8)||'-'||substr(guid,9,4)||
'-'||substr(guid,13,4)||'-'||substr(guid,17,4)
||'-'||substr(guid,21,12)||'}';
end CreateGUID;
方法二:利用CONCAT函数进行连接,具体代码如下:
CREATE OR REPLACE FUNCTION AILDM_GET_GUID
RETURN CHAR
IS
v_guid CHAR (36);
v_guid_part_one CHAR (8);
v_guid_part_two CHAR (4);
v_guid_part_three CHAR (4);
v_guid_part_four CHAR (4);
v_guid_part_five CHAR (12);
BEGIN
SELECT SYS_GUID ()
INTO v_guid
from DUAL;
v_guid_part_one := SUBSTR (v_guid, 0, 8);
v_guid_part_two := SUBSTR (v_guid, 8, 4);
v_guid_part_three := SUBSTR (v_guid, 12, 4);
v_guid_part_four := SUBSTR (v_guid, 16, 4);
v_guid_part_five := SUBSTR (v_guid, 20, 12);
v_guid :=
CONCAT
(CONCAT
(CONCAT
(CONCAT (CONCAT (CONCAT (CONCAT (CONCAT (v_guid_part_one,
&n
相关文档:
我是个新手,所以有些说的可能会不好,希望阅读这文章的人见谅啊.
一般关于ID自增的网上都有了很多了,呵呵^那我就简单的说一下: 先创建表,再创建序列:
create sequence 序列名
&nb ......
簇:
有公共列的两个或多个表的集合
簇表中的数据存储在公共数据块中
簇键:
唯一标识符
创建簇:
减少I/O操作,减少磁盘空间,但是插入性能降低。
两张表中有共同的列,比如学生表中有班级编号,班级表中也有班级编号,可以将班级编号存放在簇中
create cluster 簇名(
字段名 类型
)tablespace 表命名空间;
cr ......
3月6日:
九、表管理:
一、再表管理中需要学习的内容:
1、 创建表
2、 常用的数据类型
3、 删除表
4、 复制表
5、 修改表
6、 表重命名
7、 截断表
8、 表的约束条件
二、创建表
常见表语法:
创建表语法:
CREATE TABLE 表名
(
&nb ......
1z0-047 资料的最新分享,下面一些题目是从最新的题库中精心整理出来的,质量很高,需要的朋友看过来的啊。
1. Which statements are true? (Choose all that apply.)
A. The data dictionary is created and maintained by the database administrator.
B. The data dictionary views can consist of joins of dictiona ......
在Oracle中使用自动递增列
Oracle 沒有類似 MS-SQL 可以直接修改欄位屬性,設定成自動編號欄位,所以我們必須透過 Sequence 物件的 nextval 方法,取得其下一個值,然後將此值新增至 TABLE 中,製造出有自動編 ......