<%@ page contentType="text/html; charset=gb2312"%> oracle数据库开发的一些经验积累(二)
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
oracle数据库开发的一些经验积累(二)
     发布者: 发布时间:2006-05-07
21、drop掉名字是小写的表(用双引号括起来)。

    drop table "tablename"
    select * from "tablename"

22、日期的显示格式
注意:simplified chinese(简体中文需要" "括起来)
      别的国家不用" " 例如:english
select to_char(sysdate,''day'',''nls_date_language=''''simplified chinese'''''') from dual;
------------
星期四
------------

23、一个从oracle中读表信息的存储过程

可以在vc下调用存储过程来实现
例子:
先修改init.ora
例如:
utl_file_dir=/usr    //路径为 oracle所在的盘:/usr
此过程将用户temp的p1过程的代码保存到oracle安装盘下/usr/text.txt中
create or replace procedure test
is
  file_handle utl_file.file_type;
  stor_text varchar2(4000);
  n number;
i number;
 begin
i:=1;
   select max(line) into n from all_source where owner=''temp'' and name=''p1'';
file_handle:=utl_file.fopen(''/usr'',''test.txt'',''a'');
while i<=n loop
   select text  into stor_text from all_source where owner=''temp'' and name=''p1'' and line= i;
   i:=i+1;
   utl_file.put_line(file_handle,stor_text);
end loop;
   utl_file.fclose(file_handle);
commit;
end test;
/

24、关于修改oracle的列宽
(1)、不论如何都要备份数据。
(2)、如果没有数据,则可以修改宽度。比如number,char,varchar2
(3)、如果有数据,则可以增加宽度。比如number,char,varchar2
   注意:不可以减小宽度。
(4)、语法:alter talbe tablename modify columnname columntype not null;

25、如何查看用户的存储过程和函数

select name,text from user_source where name= procedurename and type = ''procedure'' order by line;

26、在批处理中自动启动oracle服务(win2000)

编一个批处理文件
net start oracleservicesid
oracleservicesid是oracle的实例名称

27、对行加锁时,只对tb1加锁

select tb1.r1 from tb1, tb2  where tb1.r2 = tb2.r2 and tb2.r1 = xxx for update of tb1.r1 nowait

28、得到列的信息

desc tablename
select cname from col where tname=''tablename'';
select column_name from user_tab_columns where table_name=''tablename'';
select column_name from all_tab_columns where table_name=''tablename'';
select column_name from dba_tab_columns where table_name=''tablename'';
select column_name from user_col_comments where table_name=''tablename'';   
select column_name from all_col_comments where table_name=''tablename'';
select column_name from dba_col_comments where table_name=''tablename'';

29、使触发器无效(login_on)

svrmgrl
connect internal/oracle
alter trigger login_on disable;

使触发器为无效alter trigger yourtriggername disable

如果是对于某一个表的所有的触发器:
alter table yourtablename disable all triggers


30、如在sqlplus中何调用存储过程和函数。

    call只能调用存储过程后面加上括号就可以了
    call 存储过程名();
    exec procedurename;(可以不加())
    调用函数用sql语句
    select 函数名(参数) from dual;

31、函数中如果调用dml语句就不可以调用select语句

32、redo log buffer 什么时候写到redo logfile中
    (1)、在commit的时候
    (2)、重做日志缓冲区1/3满的时候
    (3)、重做日志缓冲区大于1m的时候
    (4)、它写信息必须是在数据写进程前调用
    (5)、一般checkpoint在日志组切换的时候进行或者由初始化参数设定
         在checkpoint的时候需要调用数据写进程  

33、oracle的http server 把原有的web server冲掉,如何解决?

    (1).如果你原来的http server是用iis等其他发布工具做的,那么可以在服务中停掉         oracle http server服务,并且改为手动启动。
    (2).如果原来的http server是用apache发布,则可以改变http.conf中的参数

34、关于创建重建查看索引


创建索引:
create index ind_name on table_name(col1,col2,...);

重建索引:
alter index ind_name rebuild;

查看索引:

select * from user_indexes where index_name=''ind_name'';

35、oracle如何查杀用户的进程
 
   一|根据用户的应用程序和sql语句,在dba studio找到用户的session并断开其连接
 
   二、
  
   (1)、要杀掉一个session应先应知道其sid和serial#,假设你已经知道。
   (2)、select paddr from v$session where sid=v_sid and serial#=v_serial#
   select spid from v$process where addr=paddr(以上语句所查出的);

   (3)、使用alter system kill session ''v_sid,v_serial#'' immediate; 试一试如不行转   
  
   三、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了)

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
oracle数据库开发的一些经验积累(三)
oracle数据库开发的一些经验积累(四)
oracle数据库开发的一些经验积累(五)
oracle数据库开发的一些经验积累(六)
oracle常用命令大汇总(一)
oracle常用命令大汇总(二)
 
最近评论:
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(7139)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(8539)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(7820)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号