原文地址:http://tech.e800.com.cn/articles/2009/710/1247207067745_1.html
处理方法一 :
检查哪个表被锁
select sess.sid,sess.serial#,
lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from
v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id =
lo.object_id
and lo.session_id = sess.sid;
解锁
alter
system kill session 'xxx,yyy';
注:'xxx,yyy'是上面检索得到的sess.sid,sess.serial#
处理方法二 :
找到你要杀掉的那个SESSION,
并记下paddr
SELECT sid, username, paddr, status from v$session WHERE
username = 'JCUSER' and sid=上面查出来的sid;
找到这个SESSION所对应的spid
SELECT
ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL from v$process WHERE addr =
'上面的PADDR';
杀掉spid所标识的那个进程
orakill sid spid ......
将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子
exp userid=system/manager owner=username1 file=expfile.dmp
imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp
ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。
数据库逻辑备份方法
ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
表模式
备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接备份到磁带设备,使用如下命令:
exp ......
Oracle数据类型简介
一、概述
在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。
二、标量(SCALAR)
合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。
数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。
NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84...127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99...999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER等;
BINARY_INTENER用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以2的补码二进制形式表述。循环计数器经常使用这种类型。
PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出 ......
今天从数据库中导出几张表,但发现需要的序列都没导出来,于是网上找找方法,发现了如下语句
select
'create sequence USERNAME.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequences t where SEQUENCE_OWNER='USERNAME';
注意语句中的USERNAME 第一个username是你导入到的数据库用户名, 第二个username是你所导出数据库的用户名注意要大写
例如从testfrom用户中导出序列到testto中
select
'create sequence testto.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequences t where SEQUENCE_OWNER='TESTfrom';
查询之后倒成文本,然后在到数据库中运行,重新建立序列 ,问题解决。 ......
ORACLE数据库的基本语法集锦
-- 表
create table test (names varchar2(12),
dates date,
num int,
dou double);
-- 视图
create or replace view vi_test as
select * from test;
-- 同义词
create or replace synonym aa
for dbusrcard001.aa;
-- 存储过程
create or replace produce dd(v_id in employee.empoy_id%type)
as
begin
end
dd;
-- 函数
create or replace function ee(v_id in employee%rowtype) return varchar(15)
is
var_test varchar2(15);
begin
return var_test;
exception when others then
end
-- 三种触发器的定义
create or replace trigger ff
alter delete
on test
for each row
decla ......
分析函数,最早是从ORACLE8.1.6开始出现的,它的设计目的是为了解决诸如“累计计算”,“找出分组内百分比”,“前-N条查询”,“移动平均数计算”"等问题。其实大部分的问题都可以用PL/SQL解决,但是它的性能并不能达到你所期望的效果。分析函数是SQL言语的一种扩充,它并不是仅仅试代码变得更简单而已,它的速度比纯粹的SQL或者PL/SQL更快。现在这些扩展已经被纳入了美国国家标准化组织SQL委员会的SQL规范说明书中。
分析函数是在一个记录行分组的基础上计算它们的总值。与集合函数不同,他们返回各分组的多行记录。行的分组被称窗口,并通过分析语句定义。对于每记录行,定义了一个“滑动”窗口。该窗口确定“当前行”计算的范围。窗口的大小可由各行的实际编号或由时间等逻辑间隔确定。
除了ORDER BY(按…排序)语句外,分析函数是一条查询被执行的操作。所有合并、WHERE、GROUP BY、HAVING语句都是分析函数处理之前完成的。因此,分析函数只出现在选择目录或ORDER BY(按…排序)语句中。
前期数据准备:
create table EMP
(
......