摘要:
当我们在Oracle中写如下SQL,他会查出几行数据呢? 字面意思看上去是把序号不等于2的记录排除,是应该查出不等于2的所有记录吗? 当然答案并不是,而是返回按照时间time排序后的第一条记录; 这就与rownum这个伪列的概念有关系了,这一列并不是固定的,它的出现只是给每一行数据标上一个序号,当我 阅读全文
摘要:
1. 列转行 使用Oracle提供的功能函数,wm_concat, 但要注意,使用该函数转换出来的值是blob类型,需要手动转换成char类型; 代码如下: 2. 行转列 Oracle本身没有提供行转列功能,需要自己实现,下面是解析使用逗号隔开的字符串转换成列的示例: 阅读全文
摘要:
通过使用游标获取数据,然后修改其中的值,达到复制并修改数据的目的; 阅读全文
摘要:
select a.object_name, a.sql_id, b.sql_text, max(b.executions) executions, max(b.last_active_time) last_active_time, b.first_load_time from v$sql_plan a, v$sql b where a.sql_id = b.sql_id and a.object... 阅读全文
摘要:
Oracle的软解析会把预处理的sql放到SGA(共享池)中,避免每次都让oracle做优化和生成查询计划;在Java程序中通常使用预处理语句,不让数据库走硬解析; 下面是使用绑定变量的软解析和硬解析示例: CREATE OR REPLACE PROCEDURE proc1 AS BEGIN FOR 阅读全文
摘要:
Oracle 对数据段的管理有一个高水位(HWM, High Water Mark)的概念。高水位是数据段中使用过和未使用过的数据块的分界线。高水位以下的数据块是曾使用过的,以上的是从未被使用或初始化过的。 当 Oracle 进行全表扫描(FTS, Full table scan)的操作时,它会读高 阅读全文
摘要:
```sql
-- Oracle时间
SELECT SYSDATE FROM dual; -- 系统时间 SELECT SYSTIMESTAMP FROM dual; -- 当前系统时间戳
SELECT CURRENT_TIMESTAMP FROM dual; -- 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的
SELECT current_date FR... 阅读全文