当前位置: 数据库>其它
本页文章导读:
▪【Oracle】树状结构查询 --oracle中的树状结构查询实际上就是一个中序遍历
--显示以KING为根节点的树,start with定义起始节点
SELECT *
FROM emp a
START WITH a.empno = 7839
CONNECT BY PRIOR a.empno = a.mgr;
--置于等号前面,由父节点向.........
▪事务隔离级别 数据库中,读取数据时常见的几种情况:
Dirty Read:A transaction reads data that has been written by another transaction that has not been committed yet.
Fuzzy Read:A transaction rereads data it has previously read and finds that another.........
▪oracle精简客户端和plsql安装问题总结 oracle精简客户端下载地址:http://ishare.iask.sina.com.cn/f/35627668.html
1、安装完oracle客户端后,在安装PL/SQL。 没有先后顺序,不过建议先安装oracle客户端。因为再装PL/SQL的时候,PL/SQL会自动识别目.........
[1]【Oracle】树状结构查询
来源: 互联网 发布时间: 2013-11-07
--oracle中的树状结构查询实际上就是一个中序遍历 --显示以KING为根节点的树,start with定义起始节点 SELECT * FROM emp a START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --置于等号前面,由父节点向子节点方向检索;置于等号后面,则从子节点向父节点方向检索 SELECT * FROM emp a START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --使用伪列level来显示层级关系 SELECT * FROM emp a START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; SELECT level, a.* FROM emp a START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --使用函数 sys_connect_by_path 显示全路径 SELECT LEVEL, sys_connect_by_path(a.ename, '/'), a.* FROM emp a START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --where子句只限定单个节点,不影响子其子节点或者父节点 SELECT LEVEL, sys_connect_by_path(a.ename, '/'), a.* FROM emp a WHERE a.empno <> 7369 START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --connect by 子句限定整个以当前节点为起始节点的整个分支 --connect_by_root 可以在列之前显示最高节点的内容 SELECT LEVEL, connect_by_root(a.job),sys_connect_by_path(a.ename, '/'), a.* FROM emp a WHERE a.empno <> 7369 START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --connect_by_isleaf 显示当前行是否叶子节点,1:是;0:否 SELECT LEVEL, connect_by_isleaf,sys_connect_by_path(a.ename, '/'), a.* FROM emp a WHERE a.empno <> 7369 START WITH a.empno = 7839 CONNECT BY PRIOR a.empno = a.mgr; --connect_by_iscycle 10g中开始有的新特性,用来判断当前节点是否产生了循环,0:否;1:是 SELECT LEVEL, connect_by_iscycle, connect_by_isleaf,sys_connect_by_path(a.ename, '/'), a.* FROM emp a WHERE a.empno <> 7369 START WITH a.empno = 7839 CONNECT BY NOCYCLE PRIOR a.empno = a.mgr;
作者:snoopy93 发表于2013-1-26 16:03:49 原文链接
阅读:0 评论:0 查看评论
[2]事务隔离级别
来源: 互联网 发布时间: 2013-11-07
数据库中,读取数据时常见的几种情况: Dirty Read:A transaction reads data that has been written by another transaction that has not been committed yet. Fuzzy Read:A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data. Phantom Read:A transaction reruns a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition. 上述文字可概括为: 1.脏读:读取未提交的数据; 2.模糊读:读取已变动的数据; 3.幻读:读取已提交的数据。 在oracle中,仅定义了两种级别的隔离等级,分别是READ COMMITTED、SERIALIZABLE。 ------------------ ------------------ ------------------ ------------------ Isolation Level Dirty Read Fuzzy Read Phantom Read ------------------ ------------------ ------------------ ------------------ READ COMMITTED no yes yes ------------------ ------------------ ------------------ ------------------ SERIALIZABLE no no no ------------------ ------------------ ------------------ ------------------ 由上表可知,oracle是不允许脏读的。 举例: --会话1 create table t_isolation(id integer,name varchar2(10)); insert into t_isolation(id,name) values (1,'a'); commit; --会话2 set transaction isolation level read committed; select * from t_isolation; --会话1 --不提交 insert into t_isolation(id,name) values (2,'b'); --会话2 select * from t_isolation; 执行查询,发现查询不到刚插入的数据 update t_isolation set name='c' where id=2; 执行更新,发现无数据可更新 delete from t_isolation where id=2; 执行删除,发现无数据可删除 --会话1 commit; --会话2 select * from t_isolation; 执行查询,发现可以查询到刚插入的数据 既然可查询到刚插入的数据,那么更新和删除自然也没问题,这里就不详细举例了。 --会话3 set transaction isolation level serializable; select * from t_isolation; --会话1 --不提交 delete from t_isolation where id=2; --会话3 select * from t_isolation; 发现删除的数据可查询到 --会话1 commit; --会话3 select * from t_isolation; 发现删除的数据可查询到
作者:orcldb 发表于2013-1-28 16:16:45 原文链接
阅读:8 评论:0 查看评论
[3]oracle精简客户端和plsql安装问题总结
来源: 互联网 发布时间: 2013-11-07
oracle精简客户端下载地址:http://ishare.iask.sina.com.cn/f/35627668.html
1、安装完oracle客户端后,在安装PL/SQL。 没有先后顺序,不过建议先安装oracle客户端。因为再装PL/SQL的时候,PL/SQL会自动识别目录。
客户端安装位置可选,我安装的是:D:\database\OracleClient安装完成后会多一个目录名为:ora902、将oracle客户端安装完后,修改D:\database\OracleClient\ora90\network\ADMIN下的tnsnames.ora,具体怎么修改这里就不说了。
如果PLSQL安装完后,将你原来的tnsnames.ora覆盖现有的之后。还是有问题。那就说下我遇到的几种情况:
a) 本来我原来的tnsnames.ora中有配置的几个数据库的连接的。现在PLSQL中database哪项没了,怎么都不出来原来的数据库名字。这时候你先直接取消,然后PLSQL会打开,然后先看下help>>support Info中查看一下你的各个路径对不对。
我的几个参数如下:
parameters:
D:\Program Files\PLSQL Developer\plsqldev.exe
Preference Files
D:\Program Files\PLSQL Developer\Preferences\Default\Default.ini
D:\Program Files\PLSQL Developer\Preferences\Administrator\default.ini
Plug-Ins
Homes
OraHome90 (D:\database\OracleClient\ora90)
DLLs
D:\database\OracleClient\ora90\bin\oci.dll
TNS File
D:\database\OracleClient\ora90\network\ADMIN\tnsnames.ora
请注意以上配置的Homes和DLLs和TNS File
如果不是上面这样:
修改方式为:Homes 在系统环境变量里配置,看是否路径正确。安装后应该有,如果你安装多遍(我就是)可能就不是你现在想要使用的oracle客户端的路径了。
TNS File也是在环境变量里配置的。
然后还有就是那个dlls:
应该在你的plsql中配置。打开plsql后,在tools里第一项Perference...中Oracle下的connection(默认第一项)有Oracle Home 和 OCI library。oracle Home就直接选OraHome90这个应该是你刚刚配置过系统变量了的。如果没有也不要紧,直接粘目录也可以 。不过这样可能会说找不到这个文件,建议在环境变量里配置。我遇到的就是找不到。有些人是直接可以找到的。我的是:OraHome90也可以是:D:\database\OracleClient\ora90
oci library:中的目录应该也是可以选的。如果没有选项那么也粘你安装的客户端的目录。注意这个要带上oci.dll 我的是:D:\database\OracleClient\ora90\bin\oci.dll
这样应该就可以了、
加一句,如果还是装不上,尤其是那个TNS File 怎么改都不变,那么就打开注册表regedit。搜索TNS试试,然后看你以前安装的别的oracle客户端是不是把这个占了,如果找到了就改成现在的路径就好了。
还有就是win 7在运行的时候,登录弹出空白框。这个问题是权限的事情。你以管理员身份运行就好了。如果管理员身份运行还是会弹出空白框,那是你的环境变量配置错了,也会弹出这个空白框。尤其是Homes这个环境变量。
作者:z_play_du 发表于2013-1-28 16:59:14 原文链接
阅读:0 评论:0 查看评论
最新技术文章: