Oracle的物理结构有控制文件.数据文件.日志文件
Oracle的逻辑结构有 表空间.段,范围,块,表等.. .表空间可以有多个数据文件. 段可以有多个范围. 范围可以有多个块. . 数据文件是最小的物理文件块.. 表能够分区. 不同的分区可以存放在不同的表空间中...也就是说表的几个分区可以存放在不同的表空间里面... 分区还有分区列.. 它是定义此分区存放数据范围的关键... 也就是说正常的一个表建立需要考虑表空间..是否分区.. 分区列..索引..创建都等.
CREATE TABLE test.PARTNER_PROTOCOL_T (
Protocol_id NUMBER(9,0) NOT NULL,
Protocol_name VARCHAR2(30) NOT NULL,
Protocol_Desc VARCHAR2(255) NOT NULL,
Eff_Date DATE NOT NULL,
Exp_Date DATE NOT NULL
)
TABLESPACE System_space_space1_space2
partition by range (protocol_id,protocol_name)
(
PARTITION PART_1_1 VALUES LESS THAN (101,124) TABLESPACE System_space_space1_space2 ,
PARTITION PART_1_2 VALUES LESS THAN (101,235) TABLESPACE System_space_space1_space2 ,
PARTITION PART_2_1 VALUES LESS THAN (200,124) TABLESPACE System_space_space1_space2 ,
PARTITION PART_2_2 VALUES LESS THAN (200,235) TABLESPACE System_space_space1_space2
);
DROP INDEX test.i1_PARTNER_PROTOCOL_T;
Create unique index test.i1_PARTNER_PROTOCOL_T on test.PARTNER_PROTOCOL_T(Protocol_id,Protocol_name,Eff_Date,Protocol_Desc)
TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2
LOCAL
(
PARTITION PART_1_1 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_1_2 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_2_1 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_2_2 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2
);
关于PL?SQL 的几个概念
命名块: 由create or replace 等开头创建的 Procedure. function. package 等.. 就是命名块.. 存放在数据字典中..可以被其他人调 用
匿名块: 不是由create or replace 等开头创建的 Procedure. function. package 等.. . 存放在本地文件中..可不以被其他人调 用
Procedure 和function类型.相当一个方法.. 它形参的传递方式有三种 in. out , in out ..其各自区别如下
In: 只能引用形参的傎..不能改变
Out : 实参传进来的什不被考虑. 就是忽略不计.. 形参最后赋予的值将同时赋予于实参...
In Out 和out 有点类似..唯一的区别就是实参传进来的值能够使用..
另外还可以在形参 加 nocopy 表示只能引用....
也就是说 Procedure 和function 可以同时返回多个值..
包可以有一个或者多个 Procedure 和function..
待续
Oracle的逻辑结构有 表空间.段,范围,块,表等.. .表空间可以有多个数据文件. 段可以有多个范围. 范围可以有多个块. . 数据文件是最小的物理文件块.. 表能够分区. 不同的分区可以存放在不同的表空间中...也就是说表的几个分区可以存放在不同的表空间里面... 分区还有分区列.. 它是定义此分区存放数据范围的关键... 也就是说正常的一个表建立需要考虑表空间..是否分区.. 分区列..索引..创建都等.
CREATE TABLE test.PARTNER_PROTOCOL_T (
Protocol_id NUMBER(9,0) NOT NULL,
Protocol_name VARCHAR2(30) NOT NULL,
Protocol_Desc VARCHAR2(255) NOT NULL,
Eff_Date DATE NOT NULL,
Exp_Date DATE NOT NULL
)
TABLESPACE System_space_space1_space2
partition by range (protocol_id,protocol_name)
(
PARTITION PART_1_1 VALUES LESS THAN (101,124) TABLESPACE System_space_space1_space2 ,
PARTITION PART_1_2 VALUES LESS THAN (101,235) TABLESPACE System_space_space1_space2 ,
PARTITION PART_2_1 VALUES LESS THAN (200,124) TABLESPACE System_space_space1_space2 ,
PARTITION PART_2_2 VALUES LESS THAN (200,235) TABLESPACE System_space_space1_space2
);
DROP INDEX test.i1_PARTNER_PROTOCOL_T;
Create unique index test.i1_PARTNER_PROTOCOL_T on test.PARTNER_PROTOCOL_T(Protocol_id,Protocol_name,Eff_Date,Protocol_Desc)
TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2
LOCAL
(
PARTITION PART_1_1 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_1_2 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_2_1 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2 ,
PARTITION PART_2_2 TABLESPACE SYSTEM_SPACE_SPACE1_SPACE2
);
关于PL?SQL 的几个概念
命名块: 由create or replace 等开头创建的 Procedure. function. package 等.. 就是命名块.. 存放在数据字典中..可以被其他人调 用
匿名块: 不是由create or replace 等开头创建的 Procedure. function. package 等.. . 存放在本地文件中..可不以被其他人调 用
Procedure 和function类型.相当一个方法.. 它形参的传递方式有三种 in. out , in out ..其各自区别如下
In: 只能引用形参的傎..不能改变
Out : 实参传进来的什不被考虑. 就是忽略不计.. 形参最后赋予的值将同时赋予于实参...
In Out 和out 有点类似..唯一的区别就是实参传进来的值能够使用..
另外还可以在形参 加 nocopy 表示只能引用....
也就是说 Procedure 和function 可以同时返回多个值..
包可以有一个或者多个 Procedure 和function..
待续