北大青鸟oracle学习笔记32
成员函数和过程
构造函数方法
-oracle的每个对象均有一个内置的构造函数方法
-用于创建对象的一个实例
-无需显式地定义
-与对象类型同名
定义对象类型
create or replace
type persontype as object
(
id int,
name varchar(20),
member function getId return int,
member procedure setId(pid int),
member function getName return varchar,
member procedure setName(pname varchar)
)not final
实现对象成员方法
create or replace type body persontype as
function getId return int as
begin
return id;
end getId;
procedure setId(pid int) as
begin
id := pid;
end setId;
function getName return varchar as
begin
return name;
end getName;
procedure setName(pname varchar) as
begin
name := pname;
end setName
测试对象
declare
p personType;
begin
p:=personType(1,'pf');
--直接访问对象成员变量
dbms_output.put_line(p.id||'|'||p.name);
--使用方法访问成员变量 推荐
dbms_output.put_line(p.getId()||'|'||p.getName());
--使用set方法更改对象成员变量值
p.setId(2);
p.setName('lmj');
dbms_output.put_line(p.getId()||'|'||p.getName());
end;
输出:
1|pf
1|pf
2|lmj
很尴尬的发现最后一部视频的后半部分和前半部分是一样的。。。囧。。。嵌套表没有讲。。。
网上搜了一下嵌套表的资料,如下:
一、嵌套表的定义:
嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表depa
相关文档:
需要大量oracle测试数据时,可以使用以下方法。
DECLARE
i INT;
BEGIN
i := 0;
WHILE(i < 100000)
LOOP
i := i + 1;
INSERT INTO TEST_TABLE(ID, XM) VALUES(i, '姓名' || i);
END LOOP;
COMMIT;
END; ......
select nvl2(replace(translate('69584.00.00','.0123456789','000000000000'),'0',''),'否','是') IsNumber from dual;
select id,nvl2(replace(translate(id,'.0123456789','000000000000'),'0',''),'否','是') IsNumber
from tbl2 ......
/*============创建Customer表==========*/
create table Customer
(
Customer_id number(6) not null,
Customer_name varchar2(50) not null,
Password varcha ......
oracle
中的角色
一、何为角色?
我在前面的篇幅中说明权限和用户。慢慢的在使用中你会发现一个问题:如果有一组人,
他们的所需的权限是一样的,当对他们的权限进行管理的时候会很不方便。因为你要对这组中的每个用户的权限都进行管理。
有一个很好的解决办法就
是:角色。角色是一组权限的集合,将角色赋 ......
--查出所有被锁住的表
select b.owner TABLEOWNER, b.object_name TABLENAME, c.OSUSER LOCKBY, c.USERNAME LOGINID, c.sid SID, c.SERIAL# SERIAL
from v$locked_object a,dba_objects b, v$session c
where b.object_id = a.object_id AND a.SESSION_ID =c.sid;
--通过SID, SERIAL解锁
--alter system kill sessio ......