connect by 是结构化查询中用到的,其基本语法是:
select ... from tablename start with 条件1
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
org_id,parent_id那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。
用上述语法的查询可以取得这棵树的所有记录。
其中:
条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
条件3 是过滤条件,用于对返回的所有记录进行过滤。
简单介绍如下:
早扫描树结构表时,需要依此访问树结构的每个节点,一个节点只能访问一次,其访问的步骤如下:
第一步:从根节点开始;
第二步:访问该节点;
第三步:判断该节点有无未被访问的子节点,若有,则转向它最左侧的未被访问的子节,并执行第二步,否则执行第四步;
......
工作过程中需要将oracle中的数据导入到excle中,自己做了一下,先将方法介绍如下,
你可以根据自己的实际情况,做出更改。
1,建立一个emp.sql文件我的是在F :\SQL\EMP.SQL
set line 120
set pagesize 100
set feedback off
--关闭类似于“已选11行”这样的输出反馈,以保证spool输出定义的--文件中只有我们想要的数据
spool f:\excels\emp
select * from emp;
spool off
2 以scott用户登录,
执行 1中建立的emp.sql
在 f:\excels\emp 中生成emp.lst文件
3 在excle 打开 步骤2中生成的emp.lst文件
4,一直点下一步就好了,直到完成。
5结果:
......
oracle体系结构深入学习Buffer Cache - Overview
oracle 2009-09-02 23:13:26 阅读40 评论0 字号:大中小
涛涛深入学习oracle体系结构
我发觉,英文的一些技术文章在描述oracle原理非常的恰当到位,表达的非常的美,呵呵。英文不好,献丑翻译并学习了,认真看了,相信你受益匪浅。
oracle体系结构之:Buffer Cache - Overview
All Oracle data is obtained by users from the buffer cache. The basic purpose of the cache is to minimize physical
disk I/O by holding (buffering) copies of requested data blocks in memory. Data that is buffered in the cache can
be served to users at memory access speed, much faster than going to disk for it. The large performance penalty of
disk I/O makes tuning the buffer cache an extremely important task for the DBA.
Oracle data is stored on disk in identically sized units called blocks. Block size is determined at database creation
by the DB_BLOCK_SIZE initialization parameter. The buffer cache is also divided into buffers of this same size, and
each buffer ......
Oracle Purchasing不能查看PO或開PO,並且用戶有權限開PO。這樣情況可能有不少同仁也遇上類似問題。具體情況如下圖:
首先,查看用戶是不是採購員,需要在Oracle Purchasing添加採購員,如下圖:
但是,有時此用戶是採購員,還是有上面提示信息,怎麼回事?
再次,我們需要有用戶定義的權限,查看用戶窗體中的人員有沒有與FAUSER相關聯,這種情況是我們最容易忽略的。
設置完後,重回定位到Oracle Purchasing就可以查看PO和開PO了.
......
Q]如何开启/关闭归档
Q]如何开启/关闭归档
[A]如果开启归档,请保证log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false
注意:如果是OPS/RAC环境,需要先把parallel_server = true注释掉,然后执行如下步骤,最后用这个参数重新启动
1、开启归档
a. 关闭数据库shutdown immediate
b. startup mount
c. alter database archivelog
d. alter database opne
2、禁止归档
a. 关闭数据库shutdown immediate
b. startup mount
c. alter database noarchivelog
d. alter database open
归档信息可以通过如下语句查看
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:oracleora92databasearchive
Oldest online log sequence 131
Next log sequence to archive 133
Current log sequence 133
[Q]怎样设置定时归档
[A]9i以上版本,保证归档的最小间隔不超过n秒
设置Archive_lag_target = n
单位:秒 范围:0~7200
[Q]不同版本怎么导出/导入
[A]导出用低版本,导入用当前版本
如果版本跨越太大,需要用到中间版本过渡
[Q]不同的字符集之前怎么导 ......
--创建序列
create sequence innerid
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20
order;
--创建表
create table users(
userid int primary key,
username varchar2(20),
userpwd varchar2(20)
);
select * from users;
insert into users values(innerid.nextval,'zhangsan','123');
insert into users values(innerid.nextval,'lisi','123');
insert into users values(innerid.nextval,'wangwu','123');
--创建触发器
create or replace trigger users_id
before insert on users for each row
begin
select innerid.nextval into :new.userid from dual;
end users_id;
insert into users(username,userpwd) values('zhaoliu','123');
select * from users;
commit; ......