Oracle 异常
2018年11月12日大约 2 分钟
今天使用 oracle 执行 SQL,遇到异常如下:
ora-00054:resource busy and acquire with nowait specified
以前做页面查询,都是直接通过分页插件实现分页。
可是有一次写了很简单的查询,却发现查询的时候数据重复。
select * from user where rownum <= 10;
有时候我们需要查询一些有层级关系的数据,需要一层一层的向上(下)查询出对应的数据信息。
oracle 提供的递归查询就可以比较方便的实现。
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的。
概要:树状结构通常由根节点、父节点、子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par_dept_id,那么通过找到每一条记录的父级id即可形成一个树状结构,也就是par_dept_id(子)=dept_id(父),通俗的说就是这条记录的par_dept_id是另外一条记录也就是父级的dept_id。
有时候会看到其他人写的 SQL 使用到关键字 exists 和 not exists。
那么问题来了,这两个关键词是怎么使用的?
和 in 和 not in 有什么区别?
SELECT c.CustomerId,CompanyName FROM Customers c
WHERE EXISTS(SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)