Oracle数据库开发的一些经验积累(二)

三、LINUX和UNIX下
  转到操作系统下执行:kill -9 spid (以上语句所查出的)
  
  36、ORACLE中检查表是否被锁的语句
  
  SELECT A.OWNER,
  A.OBJECT_NAME,
  B.XIDUSN,
  B.XIDSLOT,
  B.XIDSQN,
  B.SESSION_ID,
  B.ORACLE_USERNAME,
  B.OS_USER_NAME,
  B.PROCESS,
  B.LOCKED_MODE,
  C.MACHINE,
  C.STATUS,
  C.SERVER,
  C.SID,
  C.SERIAL#,
  C.PROGRAM
  FROM ALL_OBJECTS A,
  V$LOCKED_OBJECT B,
  SYS.GV_$SESSION C
  WHERE ( A.OBJECT_ID = B.OBJECT_ID )
  AND (B.PROCESS = C.PROCESS )
  ORDER BY 1,2
  杀掉:alter system kill session 'sid, serial#'
  37、ORACLE的登录问题,用户名和密码。
  
  可以直接输入:
  internal/oracle@serivce_name
  sys/change_on_install@serivce_name
  system/manager@serivce_name
  scott/tiger@serivce_name
  注意:
  9i中没有internal/oracle
  如果选择典型安装则有 scott用户
  如果自定义可以不安装  scott用户
  如果是本机则可以省略@serivce_name
  
  oem:(ORACLE ENTERPRISE MANAGER)
  sysman/oem_temp
  
  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);
  修改

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值