易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

ORACLE PL/SQL 对象(object)学习笔记(二)

4、对象依赖性
 
CREATE OR REPLACE TYPE Obj1 AS OBJECT (
f1 NUMBER,
f2 VARCHAR2(10),
f3 DATE
);
/

CREATE OR REPLACE TYPE Obj2 AS OBJECT (
f1 DATE,
f2 CHAR(1)
);
/

CREATE OR REPLACE TYPE Obj3 AS OBJECT (
a Obj1,
b Obj2
);
/
  
 
OBJ3依赖于OBJ1和OBJ2。所以删除或修改OBJ1或OBJ2之前没有首先删除OBJ3是非法的。
 
 
5、对象标识符和对象引用
 
对象标识符(object identifier ,简称为OID)是某种类型的永久对象的唯一定位符。与ROWID变量相类似(它唯一的标识了一行),对象标识符唯一标识了一个对象。
 
我们知道,REF CURSOR变量与CURSOR变量是不同的,它仅仅是指向一个游标的指针。对象引用也是一样。对象引用是一个指向对象的指针,而不是对象本身。在声明部分或表定义中声明对象引用的语法是:
 
Variable_name REF object_type;
 
这里Variable_name是对象引用的名字,而object_type是对象类型。
例如下面定义的ClassObj类型包含一个指向RoomObj的引用:
 
 
 
CREATE OR REPLACE TYPE ClassObj AS OBJECT (
department ......

ORACLE PL/SQL 对象(object)学习笔记(二)

4、对象依赖性
 
CREATE OR REPLACE TYPE Obj1 AS OBJECT (
f1 NUMBER,
f2 VARCHAR2(10),
f3 DATE
);
/

CREATE OR REPLACE TYPE Obj2 AS OBJECT (
f1 DATE,
f2 CHAR(1)
);
/

CREATE OR REPLACE TYPE Obj3 AS OBJECT (
a Obj1,
b Obj2
);
/
  
 
OBJ3依赖于OBJ1和OBJ2。所以删除或修改OBJ1或OBJ2之前没有首先删除OBJ3是非法的。
 
 
5、对象标识符和对象引用
 
对象标识符(object identifier ,简称为OID)是某种类型的永久对象的唯一定位符。与ROWID变量相类似(它唯一的标识了一行),对象标识符唯一标识了一个对象。
 
我们知道,REF CURSOR变量与CURSOR变量是不同的,它仅仅是指向一个游标的指针。对象引用也是一样。对象引用是一个指向对象的指针,而不是对象本身。在声明部分或表定义中声明对象引用的语法是:
 
Variable_name REF object_type;
 
这里Variable_name是对象引用的名字,而object_type是对象类型。
例如下面定义的ClassObj类型包含一个指向RoomObj的引用:
 
 
 
CREATE OR REPLACE TYPE ClassObj AS OBJECT (
department ......

ORACLE PL/SQL 对象(object)学习笔记(三)

7、对象类型继承
 
对象类型实现允许我们创建一个基类型,或叫父类型,这种类型的属性或方法可以被另一个对象类型继承。然后可以创建一个子类型,或叫孩子类型,直接使用继承过来的属性或方法,或者用自己的属性和方法重写父类型的属性或方法。
 
INSTANTIABLE关键字表示我们可以从该类型中实例化或者创建对象实例。
FINAL关键字是指该对象类型下面不再有子类型,没有其他类型会继承该对象类型。
 
下面这个例子说明了继承关系,inventory_obj被book_obj继承。
 
CREATE OR REPLACE TYPE inventory_obj AS OBJECT (
item_id NUMBER (10),
num_in_stock NUMBER (10),
reorder_status VARCHAR2 (20 CHAR),
price NUMBER(10,2),
CONSTRUCTOR FUNCTION inventory_obj (
item_id IN NUMBER,
num_in_stock IN NUMBER,
price IN NUMBER
)
RETURN SELF AS RESULT,
MEMBER PROCEDURE print_inventory,
MEMBER PROCEDURE print_status,
MEMBER PROCEDURE print_price
)
INSTANTIABLE NOT FINAL;
/

CREATE OR REPLACE TYPE BOD ......

ORACLE PL/SQL 对象(object)学习笔记(三)

7、对象类型继承
 
对象类型实现允许我们创建一个基类型,或叫父类型,这种类型的属性或方法可以被另一个对象类型继承。然后可以创建一个子类型,或叫孩子类型,直接使用继承过来的属性或方法,或者用自己的属性和方法重写父类型的属性或方法。
 
INSTANTIABLE关键字表示我们可以从该类型中实例化或者创建对象实例。
FINAL关键字是指该对象类型下面不再有子类型,没有其他类型会继承该对象类型。
 
下面这个例子说明了继承关系,inventory_obj被book_obj继承。
 
CREATE OR REPLACE TYPE inventory_obj AS OBJECT (
item_id NUMBER (10),
num_in_stock NUMBER (10),
reorder_status VARCHAR2 (20 CHAR),
price NUMBER(10,2),
CONSTRUCTOR FUNCTION inventory_obj (
item_id IN NUMBER,
num_in_stock IN NUMBER,
price IN NUMBER
)
RETURN SELF AS RESULT,
MEMBER PROCEDURE print_inventory,
MEMBER PROCEDURE print_status,
MEMBER PROCEDURE print_price
)
INSTANTIABLE NOT FINAL;
/

CREATE OR REPLACE TYPE BOD ......

Oracle 学习笔记: RMAN常用命令

1 . set database to archivelog mode
Sql代码
SQL> shutdown immediate;   
Database closed.   
Database dismounted.   
ORACLE instance shut down.   
  
SQL> startup mount;   
ORACLE instance started.   
  
Total System Global Area  251658240 bytes   
Fixed Size                  1248356 bytes   
Variable Size              83887004 bytes   
Database Buffers          159383552 bytes   
Redo Buffers                7139328 bytes   
Datab ......

ROLLUP和CUBE语句。 ORACLE分组统计


ROLLUP和CUBE语句。
Oracle的GROUP
BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP
BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY
CUBE(A, B, C),则首先会对(A、B、C)进行GROUP
BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进行GROUP BY操作。
grouping_id()可以美化效果:
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。
除本文内容外,你还可参考:
分析函数参考手册:
http://xsb.itpub.net/post/419/33028
分析函数使用例子介绍:
http://xsb.itpub.net/post/419/44634
SQL> create table t as select * from dba_indexes;
表已创建。
SQL> select index_type, status, count(*) from t group by index_type, status;
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
LOB VALID 51
NORMAL N/A 25
NORMAL VALID 479
CLUSTER VALID 11
下面来看看ROLLUP和CUBE语句的执行结果。
SQL> select index_type, status, count(*) from t group by r ......

oracle 11g dbconsole 无法启动

安装oracle 11g以后 无法启动dbconsole 。通过两天的努力终于解决了
1 发现日志报 端口5520已经被占用,无法使用,打开 /%ORACLE_HOME%/oc4j/je22/OC4J_DBConsole_localhost_orcl/config/rmi.xml
发现 port="5520" ssl-port="5520" 端口号使用相同,于是修改 port="5521" ssl-port="5522"
2
2009-10-26 17:33:14
Thread-2596 ERROR main: nmectla_agentctl: Error connecting to https://localhost:3938/emd/main. Returning status code 1
2009-10-27 09:57:38 Thread-1900 ERROR main: nmectl.c: nmectl_validateTZRegion, agentTZoffset =480,and testTZoffset for GMT:0 do not match
2009-10-27 09:57:39 Thread-1900 ERROR main: nmectl.c: nmectl_validateTZRegion, agentTZoffset =480,and testTZoffset for GMT:0 do not match
2009-10-27 09:58:09 Thread-2832 WARN http: snmehl_connect: connect failed to (localhost:3938): 由于目标机器积极拒绝,无法连接。
(error = 10061)
好像是时区设置的不正确
把\%ORACLE_HOME%\localhost_orcl\sysman\config \emd.properties文件的最后一项参数由agentTZ ......

Oracle分页查询语句(一)

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。
 
分页查询格式:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * from TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。
选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的最小值和最大值。这是,查询语句如下:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
)
WHERE RN BETWEEN 21 AND 40
对比这两种写法,绝大多数的情况下,第一个查询的效率比第二个高得多。
这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查 ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [575] [576] [577] [578] 579 [580] [581] [582] [583] [584]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号