oracle中type
oracle中自定义数据类型
oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式,如将name定义为
(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就不要我们自己定义一个数据类型
create or replace type type_name as object(firstname varchar2(20),lastname varchar2(30));
这样子定义之后我们就能像使用基本类型一样使用自定义类型去建表:
如:
create or replace type name_format as object(firstname varchar2(20),lastname varchar2(30));
定义了类型之后,我们就可以将它当作普通的基本类型用了,建表,写function等等,如用自定义数据类型建表:
create table testtable(id number primary key,name name_format);
插入数据时,构造我们的这个自定义列时,就像构造对象一样,如上面的表插入数据的sql语句如下:
insert into testtable values(1,name_format('hust','lkq'));
查询自定义列的某个值可以用.来访问,如上面我要查询testtable表中name列的firstname的值可以按照如下查询:
select t.name.firstname from testtable t;
自定义数据类型也可以是集合
例如:create or replace type numers_set as array(10) of number;
这就表示创建了一个包含10个number数据的自定义类型,
注:这里的集合里面的基本元素也可以是你自定义的类型,也就是说支持嵌套定义
create or replace type name_list as array(10) of name_format:(此处的name_format就是我们在上面定义的一个自定义类型)
相关文档:
在Oracle中使用自动递增列
Oracle 沒有類似 MS-SQL 可以直接修改欄位屬性,設定成自動編號欄位,所以我們必須透過 Sequence 物件的 nextval 方法,取得其下一個值,然後將此值新增至 TABLE 中,製造出有自動編 ......
PL/SQL
块结构
DECLARE
声明部分
BEGIN
可执行部分
EXCEPTION
异常处理部分
END;
例:
首先我们看一个简单之例子,下面这个例子是统计从1 ......
oracle里的extend的意思
扩展已知的数组空间,例:
DECLARE
TYPE CourseList IS TABLE OF VARCHAR2(10);
courses CourseList;
BEGIN
-- 初始化数组元素,大小为3
courses := CourseList( 'Biol 4412 ', 'Psyc 3112 ', 'Anth 3001 ');
-- 为数组增加一个元素,数组大小为4,末尾的元素为NULL
courses.EXTEN ......
关键字: oracle cast() 函数问题
SQL> create table t1(a varchar(10));
Table created.
SQL> insert into t1 values ('12.3456');
1 row created.
SQL> select round(a) from t1;
ROUND(A)
----------
12
SQL> select round(a,3) from t1;
ROUN ......