1. 检查Oracle的进程
$ ps -ef|grep "ora_"|grep -v grep
oracle 5998 1 0 11:15:59 ? 0:01 ora_j000_PPRD10
oracle 2968 1 0 21:16:57 ? 0:00 ora_q000_PPRD10
oracle 2927 1 0 21:16:33 ? 0:00 ora_pmon_PPRD10
oracle 2933 1 0 21:16:34 ? 0:07 ora_dbw0_PPRD10
oracle 2945 1 0 21:16:34 ? 0:02 ora_mmon_PPRD10
oracle 2931 1 0 21:16:33 ? 0:00 ora_mman ......
1. 检查Oracle的进程
$ ps -ef|grep "ora_"|grep -v grep
oracle 5998 1 0 11:15:59 ? 0:01 ora_j000_PPRD10
oracle 2968 1 0 21:16:57 ? 0:00 ora_q000_PPRD10
oracle 2927 1 0 21:16:33 ? 0:00 ora_pmon_PPRD10
oracle 2933 1 0 21:16:34 ? 0:07 ora_dbw0_PPRD10
oracle 2945 1 0 21:16:34 ? 0:02 ora_mmon_PPRD10
oracle 2931 1 0 21:16:33 ? 0:00 ora_mman ......
选择自 softj 的 Blog
关键字
PL/SQL实现Oracle数据库任务调度
出处
PL/SQL实现Oracle数据库任务调度
关键词:数据恢复,任务调度,ORACLE,PL/SQL
在数据库操作中时常会有这样的情况发生,由于一时的疏忽而误删或误改了一些重要的数据,另外还有一些重要的任务需要周期性地运行。显然,前一类问题主要是数据备份与恢复方面的,而后一类则主要是系统的任务调度。本文将针对这两类问题,从应用程序开发角度给出一个解决方法。
一.技术基础
由于本文是使用PL/SQL作为开发平台来提供解决方案,所以首先了解相关的背景知识。
PL/SQL本身只是作为SQL语句的一个补充,通过引入过程化的概念来增强数据库处理能力。然而,相对于C,C++,JAVA等过程化语言来说,PL/SQL的处理功能依然不够强大。为此,Oracle数据库提供了大量的应用程序开发包,来增强应用程序开发能力。根据本文的主题,介绍如下两个开发包:DBMS_FLASHBACK和DBMS_JOB。
1. DBMS_FLASHBACK包主要是用来进行倒叙查询使用的,即通过设置查询时间来确定该时刻下的查询结果。一般情况下,我们平时使用的查询是查询当前时间(s ......
选择自 softj 的 Blog
关键字
PL/SQL实现Oracle数据库任务调度
出处
PL/SQL实现Oracle数据库任务调度
关键词:数据恢复,任务调度,ORACLE,PL/SQL
在数据库操作中时常会有这样的情况发生,由于一时的疏忽而误删或误改了一些重要的数据,另外还有一些重要的任务需要周期性地运行。显然,前一类问题主要是数据备份与恢复方面的,而后一类则主要是系统的任务调度。本文将针对这两类问题,从应用程序开发角度给出一个解决方法。
一.技术基础
由于本文是使用PL/SQL作为开发平台来提供解决方案,所以首先了解相关的背景知识。
PL/SQL本身只是作为SQL语句的一个补充,通过引入过程化的概念来增强数据库处理能力。然而,相对于C,C++,JAVA等过程化语言来说,PL/SQL的处理功能依然不够强大。为此,Oracle数据库提供了大量的应用程序开发包,来增强应用程序开发能力。根据本文的主题,介绍如下两个开发包:DBMS_FLASHBACK和DBMS_JOB。
1. DBMS_FLASHBACK包主要是用来进行倒叙查询使用的,即通过设置查询时间来确定该时刻下的查询结果。一般情况下,我们平时使用的查询是查询当前时间(s ......
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
4. /*+RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
5. /*+FULL(TABLE)*/
表明对表选择全局扫描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM from BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(TAB ......
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
4. /*+RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
5. /*+FULL(TABLE)*/
表明对表选择全局扫描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM from BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(TAB ......
使用的是ADODB库,需要有OCI8库.
<?php
//require("adodb5/adodb-exceptions.inc.php");
require("adodb5/adodb.inc.php");
$conn = NewADOConnection("oci8");
$conn->Connect($url, $user, $password, $service_name);
$rs;
try {
$rs = $conn->Execute("SELECT * from (SELECT rownum r,ima_file.* from ima_file) s WHERE s.r >= 9000 AND s.r <= 10000");
} catch(exception $e) {
print_r($e);
}
$i = 0;
echo "<table border=1><caption>IMA_FILE</caption><thead><td>计数</td><td>行数</td><td>料件号</td><td>品名</td><td>规格</td></thead>";
foreach($rs as $row) {
echo "<tr><td>" . ++$i . "</td><td>$row[0]</td><td>{$row[1]}</td><td>{$row[2]}</td><td>{$row[3]}</td></tr>";
}
echo "</table>";
?>
......
使用的是ADODB库,需要有OCI8库.
<?php
//require("adodb5/adodb-exceptions.inc.php");
require("adodb5/adodb.inc.php");
$conn = NewADOConnection("oci8");
$conn->Connect($url, $user, $password, $service_name);
$rs;
try {
$rs = $conn->Execute("SELECT * from (SELECT rownum r,ima_file.* from ima_file) s WHERE s.r >= 9000 AND s.r <= 10000");
} catch(exception $e) {
print_r($e);
}
$i = 0;
echo "<table border=1><caption>IMA_FILE</caption><thead><td>计数</td><td>行数</td><td>料件号</td><td>品名</td><td>规格</td></thead>";
foreach($rs as $row) {
echo "<tr><td>" . ++$i . "</td><td>$row[0]</td><td>{$row[1]}</td><td>{$row[2]}</td><td>{$row[3]}</td></tr>";
}
echo "</table>";
?>
......
方法一:
----------------------------------------------------------------
---Muti-row to line(col2row)
----------------------------------------------------------------
create or replace type str_tab is table of varchar2(20);
/
grant all on str_tab to public;
create public synonym str_tab for str_tab;
create or replace function col2row(pv in str_tab) return varchar2
is
ls varchar2(4000);
begin
for i in 1..pv.count loop
ls := ls || pv(i);
end loop;
return ls;
end;
/
grant execute on col2row to public;
create public synonym col2row for col2row;
----------------------------------------------------------------
--multi column,convert one column base on another column, for example
----------------------------------------------------------------
create table t(id number,name varchar2(10));
insert into t values(1,'Joan');
insert into t values(1,'Jack');
insert into t values(1,'Tom');
insert into t values(2,'Rose');
inser ......
以下列出的是Oracle
用户管理过程中常用的一些指令,以供大家参考。
Oracle
用户管理之一、创建profile
文件。
1.
SQL>Create
profile
文件名 limit
2.
FAILED_LOGIN_ATTEMPTS
:指定锁定用户的登录失败次数
3.
PASSWORD_LOCK_TIME
:指定用户被锁定天数
4.
PASSWORD_LIFE_TIME
:指定口令可用天数
5.
PASSWORD_REUSE_TIME
:指定在多长时间内口令不能重用
6.
PASSWORD_REUSE_MAX
:指定在重用口令前口令需要改变的次数
7.
&n ......