重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
by PLS_INTEGER你可以用类似 string_index_by_number(1),也就用数字下标来访问集合中的元素,例子:
成都创新互联公司10多年成都企业网站建设服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都企业网站建设及推广,对资质代办等多个行业拥有多年的网站维护经验的网站建设公司。
declare
TYPE number_index_by_string IS TABLE OF NUMBER INDEX BY VARCHAR2(30);
num_collection string_index_by_number;
begin
num_collection(1) := '北京';
dbms_output.put_line(num_collection(1)); --输出为北京
end;
BY VARCHAR2(30) 你可以用类似 number_index_by_string ('name'),也就用数字下标来访问集合中的元素.
例子: declare
TYPE number_index_by_string IS TABLE OF NUMBER INDEX BY VARCHAR2(30);
num_collection number_index_by_string;
begin
num_collection('北京') := 1;
dbms_output.put_line(num_collection('北京')); --输出为1
end;
在oracle中可以使用create type的语句进行自定义数据类型。
在pl/sql中用TYPE type_name IS TABLE OF ...的语法来定义
Oracle 自定义TYPE 的几种用法
Oracle中的类型有很多种,主要可以分为以下几类:
1、字符串类型。如:char、nchar、varchar2、nvarchar2。
2、数值类型。如:int、number(p,s)、integer、smallint。
3、日期类型。如:date、interval、timestamp。
4、PL/SQL类型。如:pls_integer、binary_integer、binary_double(10g)、binary_float(10g)、boolean。plsql类型是不能在sql环境中使用的,比如建表时。
5、自定义类型。
下面简单的枚举下常用的几种自定义类型。
1、子类型。
这种类型最简单,类似类型的一个别名,主要是为了对常用的一些类型简单化,它基于原始的某个类型。如:
有些应用会经常用到一些货币类型:number(16,2)。如果在全局范围各自定义这种类型,一旦需要修改该类型的精度,则需要一个个地修改。
那如何实现定义的全局化呢?于是就引出了子类型:
subtype cc_num is number(16,2);
这样就很方便地解决了上述的麻烦。
2、普通类型
如:
create or replace type typ_calendar as object(
年 varchar2(8),
月 varchar2(8),
星期日 varchar2(8),
星期一 varchar2(8),
星期二 varchar2(8),
星期三 varchar2(8),
星期四 varchar2(8),
星期五 varchar2(8),
星期六 varchar2(8),
本月最后一日 varchar2(2)
);
这种类型可以在表结构定义的时候使用:
create table tcalendar of typ_calendar;
插入数据测试:
SQL insert into tcalendar
2 select typ_calendar('2010','05','1','2','3','4','5','6','7','31') from dual
3 /
注意:插入的数据需要用typ_calendar进行转换。
1 row inserted
--查看结果
SQL select * from tcalendar;
分两种情况,一种是在创建表的时候直接设置date类型,另一种是在表已存在的情况下,更改某字段类型为date。 第一种情况: create table test(id int,ttime date);如,上述内容是直接设置ttime字段类型为date。 第二种情况: alter table test mo