三LINUX和UNIX下
转到操作系统下执行:kill spid (以上语句所查出的)
ORACLE中检查表是否被锁的语句
SELECT AOWNER
AOBJECT_NAME
BXIDUSN
BXIDSLOT
BXIDSQN
BSESSION_ID
BORACLE_USERNAME
BOS_USER_NAME
BPROCESS
BLOCKED_MODE
CMACHINE
CSTATUS
CSERVER
CSID
CSERIAL#
CPROGRAM
FROM ALL_OBJECTS A
V$LOCKED_OBJECT B
SYSGV_$SESSION C
WHERE ( AOBJECT_ID = BOBJECT_ID )
AND (BPROCESS = CPROCESS )
ORDER BY
杀掉alter system kill session sid serial#
ORACLE的登录问题用户名和密码
可以直接输入
internal/oracle@serivce_name
sys/change_on_install@serivce_name
system/manager@serivce_name
scott/tiger@serivce_name
注意
i中没有internal/oracle
如果选择典型安装则有scott用户
如果自定义可以不安装 scott用户
如果是本机则可以省略@serivce_name
oem:(ORACLE ENTERPRISE MANAGER)
sysman/oem_temp
修改表的列名
Oraclei:
alter table xxx rename column xx to yy;
Oraclei & lower version
connect sys/passed;
update col$ set name=xx where obj#=对象id and name = 字段
(一般不要这样用会造成意想不到的结果)
注最好是删除再建立新的列
把用户模式对象所在的表空间移到新的表空间
() create the new tablesapce
() alter user test default tablespace test_data;
() alter user test quota unlimited on test_data;
() alter table the_table_name move tablespace test_data;
生成脚本
select alter table||tname|| move tablespace test_date;
from tab
where tabtype=TABLE
() rebuild the indexes;
使用OEM备份或者EXP的步骤
WIN下
() 控制面板――>管理工具―― >计算机管理――>本地用户和组――>用户――>新建用户sys和sysman(sys和sysman 的帐号要和登陆数据库的帐号相同)
().控制面板――>管理工具―― >本地安全策略――>本地策略――>用户权利指派――>
作为批处理作业登陆――>添加sys和sysman两个帐号
().使用Enterprise Manager配置辅助工具
开始→程序→Oracle OraHome→Enterprise Manager→Configuration Assistant
a使用Configuration Assistant工具来创建一个新的资料档案库
().控制面板――>管理工具―― > 服务查看OracleOraHomeManagementServer是否启动如果没有启动则手动启动该服务
().以sysman/oem_temp(default)登陆DBA Studio
(第二个选项登陆到Oracle Management Server)立即修改密码为你刚才在NT下建的用户sysman的密码
(). 以sysman/ *** (bluesky) 从开始→程序→Oracle OraHome→Console 登陆到 控制台
在 系统→首选项→首选身份证明(我的首选身份设置如下)
DEFAULT节点name:sysman
DEFAULT数据库name:sys
(). 在搜索/添加结点后以sysman/ *** 登陆到该结点以sys/ *** as sysdba登陆数据库(也就是在首选身份设置的结果)
(). 在工具→备份管理→向导→预定义备份策略(自定义备份策略)→提交备份计划
().从开始→程序→Oracle OraHome→Console 登陆到 控制台查看活动(历史记录)可以看到你的备份是否成功如果不成功可以点击备份看明细(我第一次也没成功后来我修改系统的临时目录C:\WINNT\Temp→c:\temp\systmp重新启动机器就ok了)
如何修改INTERNAL的口令
以下是oracle的i你可以仿照来做
()进入DOS下
()默认internal密码文件在c:\orant\database下是隐藏属性文件名称与数据库实例名有关
如默认ORACLE实例名为ORCL则internal密码文件名为pwdorclora
()建立新的internal密码文件起个新名字为pwdoraora
orapwd file=pwdoraora password=B entries=注password项一定要用大写并且不要用单引号
()拷贝pwdoraora文件到c:\orant\database目录下
()运行regedit修改口令文件指向
()找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE项
定位ORA_ORCL_PWFILE子项改变其值为c:\orant\database\pwdoraora
()关闭ORACLE数据库重新启动
()进入svrmgr服务程序测试internal密码是否更改成功
凭证检索失败的决绝方法
原因: 由于Oracle不能应用OS认证而导致凭证检索失败
解决办法:
()打开network/admin下的sqlnetora
修改SQLNETAUTHENTICATION _SERVICES=(NONE)
()启动Net configuration assistant>选第三项本地网络服务名配置
>删除(删除原来的本地网络服务名)
()重复第二步
>添加 (新建本地网络服务名)
()restart oracle
注意NTS是WinNT的认证方式
命令行编译存储过程
ALTER PROCEDURE procedure_name COMPILE;
关于如何建立数据库链接(DBlink)
可以通过建立客户机数据库网络服务名的办法将服务器的名字或是IP地址设置为你需要连接的那个机器就行
如果你要在一个应用中连接它现在做好上步工作然后按如下处理
建立数据库连接
CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING NetServiceName;
DBaseLinkName是建立的数据连接名称
UserName 是可以连接到的用户名
Password是可以连接到的用户的密码
NetServiceName是可以连接的数据库网络服务名或是数据库名
查询建立数据连接的表实例
Select * From TableName@ DBaseLinkName;
注意如果在CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING NetServiceName;中NetServiceName是数据库名修改initora中global_names = true
否则global_names = false
initora中global_names = false
Object Browser中文版的破解方法
到OBJECT BROWSER的目录里找到DeIsLisu文件用记事本打开看到的是乱码吧?没关系将Stirling Technologies Inc 这个字符串前面的乱码去掉(如果有的话)让后在Stirling之前加一个空格(一定要加的)保存退出重新运行一下看看虽然还有提示输入验证信息但是不用管他直接确定就行是不是可以用了呢?保证好使
错误号ORA:space quota exceeded for table space ALCATEL的解决办法
三个解决办法任你选择
() alter user USERNAME quota M on TABLESPACENAME;
() alter user USERNAME quota unlimited on TABLESPACENAME;
() grant unlimited tablespace to USERNAME;
如何在Oracle中捕获到SQL语句的全部操作内容
SELECT osuser username sql_text from v$session a v$sqltext b
where asql_address =baddress order by address piece;
ORACLE中如何实现自增字段
()第一种方法
ORACLE一般的做法是同时使用序列和触发器来生成一个自增字段
CREATE SEQUENCE SEQname
INCREMENT BY
START WITH
MAXVALUE
/
CREATE TRIGGER TRGname
BEFOREINSERTON table_name
REFERENCING
NEW AS :NEW
FOR EACH ROW
Begin
SELECT SEQnameNEXTVAL
INTO :NEWFIELDname
FROM DUAL;
End;
()第二种方法
CREATE OR REPLACE TRIGGER TR
BEFORE INSERT ON temp_table
FOR EACH ROW
declare
com_num NUMBER;
BEGIN
SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE;
:NEWID:=COM_NUM+;
END TR;
job的使用
修改initsidora参数
job_queue_processes = ii(允许同时执行的JOB数)
job_queue_interval = i
job_queue_keep_connections=true i
DBMS_JOBSUBMIT(:jobno//job号
your_procedure;//要执行的过程
trunc(sysdate)+///下次执行时间
trunc(sysdate)+/+//每次间隔时间
);
删除job:dbms_jobremove(jobno);
修改要执行的操作:dbms_jobwhat(jobnowhat);
修改下次执行时间dbms_jobnext_date(jobnext_date);
修改