38、修改表的列名Oracle9i: alter table xxx rename column xx to yy; Oracle8i & lower version connect sys/passed; update col$ set name=xx where obj#=对象id and name = 字段 (一般不要这样用,会造成意想不到的结果) 注:最好是删除再建立新的列 39、把用户模式对象所在的表空间移到新的表空间 (1). create the new tablesapce (2). alter user test default tablespace test_data; (3). alter user test quota unlimited on test_data; (4). alter table the_table_name move tablespace test_data; 生成脚本: select ''''alter table''''||tname||'''' move tablespace test_date;'''' from tab where tabtype=''''TABLE'''' (5). rebuild the indexes;
40、使用OEM备份或者EXP的步骤 WIN2000下: (1). 控制面板――>管理工具―― >计算机管理――>本地用户和组――>用户――>新建用户sys和sysman(sys和sysman 的帐号要和登陆数据库的帐号相同); (2).控制面板――>管理工具―― >本地安全策略――>本地策略――>用户权利指派――> 作为批处理作业登陆――>添加sys和sysman两个帐号。 (3).使用Enterprise Manager配置辅助工具 开始→程序→Oracle - OraHome81→Enterprise Manager→Configuration Assistant a、使用Configuration Assistant工具来创建一个新的资料档案库。 (4).控制面板――>管理工具―― > 服务,查看OracleOraHome81ManagementServer是否启动,如果没有启动,则手动启动该服务。 (5).以sysman/oem_temp(default)登陆DBA Studio (第二个选项:登陆到Oracle Management Server),立即修改密码为你刚才在NT下建的用户sysman的密码。 (6). 以sysman/ *** (bluesky) 从开始→程序→Oracle - OraHome81→Console 登陆到 控制台。 在 系统→首选项→首选身份证明(我的首选身份设置如下:) DEFAULT节点:name:sysman DEFAULT数据库:name:sys (7). 在搜索/添加结点后,以sysman/ *** 登陆到该结点,以sys/ *** as sysdba登陆数据库(也就是在首选身份设置的结果)。 (8). 在工具→备份管理→向导→预定义备份策略(自定义备份策略)→提交备份计划 (9).从开始→程序→Oracle - OraHome81→Console 登陆到 控制台,查看活动(历史记录)可以看到你的备份是否成功,如果不成功,可以点击备份看明细。(我第一次也没成功,后来我修改系统的临时目录C:\WINNT\Temp→c:\temp\systmp,重新启动机器就ok了) 41、如何修改INTERNAL的口令 以下是oracle8的8i你可以仿照来做 (1)、进入DOS下 (2)、默认internal密码文件在c:\orant\database下,是隐藏属性,文件名称与数据库实例名有关 如默认ORACLE实例名为ORCL,则internal密码文件名为pwdorcl.ora (3)、建立新的internal密码文件,起个新名字为pwdora8.ora orapwd80 file=pwdora8.ora password=B entries=5 --注:password项一定要用大写,并且不要用单引号 (4)、拷贝pwdora8.ora文件到c:\orant\database目录下 (5)、运行regedit,修改口令文件指向 (6)、找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE项 定位ORA_ORCL_PWFILE子项,改变其值为c:\orant\database\pwdora8.ora (7)、关闭ORACLE数据库,重新启动 (8)、进入svrmgr30服务程序,测试internal密码是否更改成功 42、凭证检索失败的决绝方法。
原因: 由于Oracle不能应用OS认证而导致凭证检索失败 解决办法: (1).打开network/admin下的sqlnet.ora 修改SQLNET.AUTHENTICATION _SERVICES=(NONE)。 (2).启动Net8 configuration assistant-->选第三项本地网络服务名配置 -->删除...(删除原来的本地网络服务名) (3).重复第二步 -->添加.. (新建本地网络服务名) (4).restart oracle 注意:NTS是WinNT的认证方式 43、命令行编译存储过程 ALTER PROCEDURE procedure_name COMPILE; 44、关于如何建立数据库链接(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 是数据库名修改init.ora中:global_names = true 否则global_names = false init.ora中:global_names = false 45、Object Browser7.0中文版的破解方法 到OBJECT BROWSER的目录里,找到DeIsL1.isu文件,用记事本打开,看到的是乱码吧?没关系,将Stirling Technologies ,Inc 这个字符串前面的乱码去掉(如果有的话),让后在Stirling之前加一个空格(一定要加的),保存,退出,重新运行一下看看,虽然还有提示输入验证信息,但是不用管他,直接确定就行。是不是可以用了呢?保证好使。 46、错误号ORA-01536:space quota exceeded for table space ''''ALCATEL''''的解决办法 三个解决办法,任你选择: (1) alter user USERNAME quota 100M on TABLESPACENAME; (2) alter user USERNAME quota unlimited on TABLESPACENAME; (3) grant unlimited tablespace to USERNAME; 47、如何在Oracle中捕获到SQL语句的全部操作内容 SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece; 48、ORACLE中如何实现自增字段: (1)第一种方法 ORACLE一般的做法是同时使用序列和触发器来生成一个自增字段. CREATE SEQUENCE SEQname INCREMENT BY 1 START WITH 1 MAXVALUE 99999999 / CREATE TRIGGER TRGname BEFORE INSERT ON table_name REFERENCING NEW AS :NEW FOR EACH ROW Begin SELECT SEQname.NEXTVAL INTO :NEW.FIELDname FROM DUAL; End; (2)第二种方法: CREATE OR REPLACE TRIGGER TR1 BEFORE INSERT ON temp_table FOR EACH ROW declare com_num NUMBER; BEGIN SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE; :NEW.ID:=COM_NUM+1; END TR1; 49、job的使用: 修改initsid.ora参数 job_queue_processes = 4 8i,9i (允许同时执行的JOB数) job_queue_interval = 10 8i job_queue_keep_connections=true 8i DBMS_JOB.SUBMIT(:jobno,//job号 ''''your_procedure;'''',//要执行的过程 trunc(sysdate)+1/24,//下次执行时间 ''''trunc(sysdate)+1/24+1''''//每次间隔时间 ); 删除job:dbms_job.remove(jobno); 修改要执行的操作:dbms_job.what(jobno,what); 修改下次执行时间:dbms_job.next_date(job,next_date); 修改间隔时间:dbms_job.interval(job,interval); 停止job:dbms.broken(job,broken,nextdate); 启动job:dbms_job.run(jobno);
注意:修改后一定要COMMIT; 例子: VARIABLE jobno number; begin DBMS_JOB.SUBMIT(:jobno, ''''Procdemo;'''',//Procdemo为过程名称 SYSDATE, ''''SYSDATE + 1/720''''); commit; end;
50、如何配置mts 修改初始化参数文件 增加以下内容: mts_dispatchers = "(protocol=TCP)(disp=2)(con=1000)" mts_max_dispatchers = 50 mts_servers = 20 mts_max_servers = 50 51、取出一个表的最后一条记录 select * from (select rownum id,tname.* from tname) a where a.id=(select count(*) from a); 52、重做日志(Redolog)被删掉,通过什么方法才能恢复! 先mount数据库,然后再目录下建同名文件redo01.log、redo02.log、redo03.log 然后执行alter databse clear logfile group n 对于current的group,执行alter databse clear unarchived logfile group n 然后,再open,就ok了 53、Oracle常见服务 几个主要的: OracleOraHome81TNSListener 监听服务 OracleServiceSID ORACLE服务 OracleOraHome81Agent 智能代理服务 OracleOraHome81CMan 连接管理服务 OracleOraHome81HTTPServer APACHE WEB 服务 OracleOraHome81ManagementServer ORACLE 企业管理器服务 OracleOraHome81Names ORACLE命名服务 剩下的也不常用。 54、ORACLE的热备份 在不关闭数据库的时候进行ORACLE的备份。 原理停复杂的,你去找本书看看吧。 举个简单的例子:备份表空间USERS ALTER TABLESPACE USERS BEGIN BACKUP COPY USERS TABLESPACE 的数据文件到备份目录 ALTER TABLESPACE USERS END BACKUP 55、导致索引不起作用的解决办法 你的问题我刚处理过,是由optimizer_mode参数引起的,该参数的默认值为choose,即为如表有statis则查询走基于cost的方式,否则走基于rule的方式,因些你可以有以下几个解决方法。 (1)、简单的在init<sid>.ora中设optimizer_mode=rule,重起数据库。 (2)、使用analyze table table_name(索引基表) delete statistics; (3)、最后一个万能办法,将表和索引drop掉,重建。 56、关于数据库进程的问题。 (1).查看相关进程在数据库中的会话 Select a.sid,a.serial#,a.program, a.status , substr(a.machine,1,20), a.terminal,b.spid from v$session a, v$process b where a.paddr=b.addr and b.spid = &spid; (2).查看数据库中被锁住的对象和相关会话 select a.sid,a.serial#,a.username,a.program, c.owner, c.object_name from v$session a, v$locked_object b, all_objects c where a.sid=b.session_id and c.object_id = b.object_id; (3).查看相关会话正在执行的SQL select sql_text from v$sqlarea where address = ( select sql_address from v$session where sid = &sid ); 57、查看IP地址 select SYS_CONTEXT(''''USERENV'''',''''IP_ADDRESS'''') from dual;
58、运行SQLPLUS时不用输入用户名和密码,进入之后使用CONNECT SQLPLUS /NOLOG SQL>CONNECT SCOTT/TIGER 59、查看当前会话 userenv() 函数 select userenv(''''language'''') from dual 字符集 select userenv(''''isdba'''') from dual 是否DBA &nb 上一页 [1] [2] [3] [4] [5] 下一页 没有相关教程
|