`
热开水
  • 浏览: 69976 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

orcale 实际操作遇到问题解决总结

阅读更多
1 where current of 到底有什么用啊  用了和不用有区别么
   取3当前游标啊
2 sql语句修改列名
  alter table table_name rename column old to new

3 我现在是要一条SQL语句得到
现在数据库是的字段值
是1,2,3,6,7,8,9,10
现在要选出1到10中不存在的ID:4,5
SELECT rownum FROM dual connect by rownum<=10;  查出全部
方法1 not in
聆听阳光 10:34:14
方法2 not exist
聆听阳光 10:34:20
方法3 left join
聆听阳光 10:34:36
方法4 except
4 有数据a 95
        a  94
        a  94
        a  93
        b  92
        b  91
        b  90
要得到
     要得到a 95 1
          a  94 2
          a  94 2
          a  93 3
          b  92 1
          b  91 2
          b  90 3
这样效果
select code ,num, rank() over (partition by code order by num desc) pm
from table1
5 显示 内容整齐些的col name format a20
6 大家好!  我想查询小数为4位的数据怎么查呀!
  select * from table where (columns*1000-floor(columns*1000))>0
7 ORA-01033: ORACLE initialization or shutdown in progress
现在连不上数据库怎么解决啊
看看库的服务器是不是停了。
8 实际上,oracle在处理in的时候是转换成or进行处理的,如:
  a in (1,2)相当于 a=1 or a=2

9 既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料
  select * from emp where job not in() and  sal>2000
  怎么样显示名字中带R的员工的姓名
  where name like ‘%R%’

10 session最大数,哪里设置?
   show parameters
   pfile
11 启动服务lsnrctl start
12 select value from v$parameter where name="processes"  看看进程上限
   第一个是取进程数的
   如果达到上限了 你改下initSID里面的processe 就可以了
13 如何同事update 两个关联表 中的 两个字段?
  
  update TA a set a.status ='1' where a.num in(select b.num from TB b where b.status ='1')
  update set b.status ='0' where b.num in ( select b.num from TB b where b.status ='1')

14 job 中 如何将执行时间设置成每天17点运行一次?
   第一次执行时间 2010-02-02 17:00:00
   下一次执行时间 sysdate+1

15 大家好!   我的Oracle 的数据装满了表空间! 继续插入数据会不会有问题呢?
   一般出错的是temp
16 sql loader
   sqlldr username/ pasw @service control='c:\test.ctl'
17 else if 要写成elseif
18 现在两个时间time1, time2
   有没有办法通过
   select ? from dual 的形式判断time1是否大于time2?
select case when time1>time2 then 1 else 0 end from dual
19 v$sql_plan是执行过的语句的执行计划,
20 对表的优化
  select a.aa,a.ab,b.ba,b.bb, sum(b.ba) over( partition by  b.bb,a.ab),sum(a.aa) over( partition by  b.bb,a.ab),
  可以将表分成10几个再合并了。
from test1 a,test2 b

21 drop删除的表的恢复flashback table table_name before drop
22 如果一不小心删除了表空间,还有办法恢复吗 ?
   可以吧 用RMAN
23 如果用imp导入一个已存在的库(表结构已经存在),是不是加ignore=y这个参数呢
   最好Drop了再导进去
   set oracle_sid=audit
   exp tmssj/1 file=tmssj.dmp owner=tmssj
   imp tmssjback/1 file=tmssj.dmp fromuser=tmssj touser=tmssjback file=e:\tmssj.dmp

24 我有这样的需求,有两个表 tab1和tab2
tab1 
    id1    no      name      age
     1    A001     张三      18
     2    A003     李四      20
tab2
    id2      pno     name
     1       A001    null
     3       A003    null   
tab2表中的pno是tab1表中的主键,我想根据pno和no把tab2表中的name更新成tab1表中的名字
更新够的tab2表为:
      id2       pno     name
      1        A001     张三
      3        A003     李四   
请高手指教该怎么做,要求tab2表中的id2更新前后不改变
update tab2
   set name = (select name
                 from tab1
                where tab2.pno=tab1.no)

25 如何选择一张表中随机的80%的数据?
   SELECT C.*
  FROM (
        SELECT ROW_NUMBER() OVER(ORDER BY B.RN1) RN2, B.*
          FROM (SELECT DBMS_RANDOM.VALUE(0, 1) RN1, A.* FROM TT_SEND_BILL A) B
         ORDER BY B.RN1) C
WHERE C.RN2 <= (SELECT COUNT(1) * 0.78 FROM TT_SEND_BILL)

26 char varchar2有什么区别?为啥char的查询效率比varchar2高?varchar2在查询的时候应该做如何的优化?

27 列出所有字段?
    describe

28 查询Score表中的最高分的学生学号和课程号。
   这条sql语句,怎么写啊
  select name,class no from score where grade = (select max(grade) from score);

29 诸位兄台 在PL/SQL里 SELECT 一个字段 INTO 一个变量 如果 表名是变化的 该怎么处理表名里面有版本号 要根据时间查版本表 然后得到表名动态SQL 那个 能否写个范例?
    declare
    v_date date;
    begin
    execute immediate 'select sysdate from dual' into v_date ;
    dbms_output.put_line(v_date);
    end;
   /
  procedure successfully completed.




30  问大家一下,我一个表,经常删除插入,但又的人经常可能同时用,我不想做全局临时表,我该怎么处理啊,我怎么锁那个表啊
    在你的表上加一列 serial_ID , 每个用户在表里写的数据的时候,都有一个唯一ID,以区别其他的用户(会话)
    用户A
    直接for update nowait,别人不用等待
    你在删除前用select * from 表 for update nowait不能进行删除修改,再删除就可以了
    select * from 表 for update nowait  锁机制。

31 恢复备份的文件
rman>restore datafile 4 ;
rman>recover datafile 4 ;

32 where e.deptno(+)= d.deptno; (+)= 是什么意思啊
   (+)在oracle里面表示左连接,相当left join

  
33 传统消除行迁移方法是先把存在行迁移的数据存放在临时表里面。
然后删除原表中的行迁移记录行
最后将临时表中的数据插入到原表中,并删除临时表


34 问大家下,aix下的oracle10g能连接sql server数据库吗
   透明网关


35 游标效率太低
   后来还是case when效率高



37 查找1433端口号netstat -an |find "1433"



38 问大家下,锁到底什么时候用啊,好像我都用不上,谁能指导下啊
   UPDATE的时候用



39 请问  如何查某个表上 自己建立的所有的触发器
   select * from dba_triggers where owner = '创建者' and and table_name = '表名';
   select TRIGGER_NAME  from (select   *   from   all_triggers);

40 新人报道,先提一问!
如何判断两个日期之间间隔的天数总和是多少个月?
例如:2010-8-10与2010-9-30,两个日期之间的间隔肯定是大于一个月小于两个月的,关键是在sql语句中如何判断合适。
select months_between(to_date('2010-9-30','yyyy-mm-dd'),to_date('2010-8-10','yyyy-mm-dd'))from dual;


41 一个大表有五个列,1 2列值唯一性较大,3 4 5取值范围20个类型左右,怎么建索引??
   前两个建btree 后三个建bitmap
   高基数和低基数同时where时,用哪个索引好,我正在做实验,这个情况时用第一个索引很慢,我有两千万数据
   我们用的比较多的就是btree,bitmmap,还有函数index。



42 我有一个对于我来说的大表2000万,有5个查询字段,
两个高基数,三个低基数,不需要复杂的排序,组合,只是组合列查询,但是以前索引建了好多种,能满足几个组合,不能满足所有组合,现在可以了
解答:两个高基数建一个索引,三个低基数建一个索引
查询1或2或1和2用1索引,查询3 4 5或345组合用2索引,
查询包含12 和 345组合,用2索引,都在1-2秒



43 ocp英文为 oracle certified professional
   orcale 专家认证

44 显示视图内容
select text from user_views where view_name='EMP'


45 请教:一个字符集为UTF8的oracle10g数据库备份后向一个字符集为ZHS16GBK中导入数据(exp/imp),怎么才不会出现乱码?

用同个客户端




46 有个问题  问下各位大侠,
如果数据库table表的属性被删除了,可以添加回来么??





47 各位兄台 谁讲解下 POWER函数的啊
   power(N,M) N的M次方
   假设N=2,后面M=3,值就会是2*2*2就是前在值*自己多少次



48 ORACLE的字符集不是像你们理解的那么简单滴

实例字符集
数据库字符集
客户端字符集,也就是会话字符集
服务器字符集一般是说的操作系统字符集
或者
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0



49 回闪数据
   select FLASHBACK_ON from v$database;
   flashback table <table_name> to before drop;

   只要在drop 表时,没有带上purge子句,就可以,

50 oracle数据库有个日期类型的字段,里面有如2009-09-09,我要获取年份2009,
   to_char(sysdate,'yyyy')出来就是2010



51 看sple文件位置show parameter spfile;


52 请教大家个问题:
select count(distinct id) from test;和
select count(unique id) from test;有什么区别吗?
没有区别



53
select a from b
结果
1
2
3

现在想直接要结果
1,2,3

就是行转列,有简单的方法不

解决:select  WMSYS.WM_CONCAT(a) from b

然后我查找了一下列转行 decode函数.




54 oracle中如何查询用户是否具有dba权限??
   select * from user_role_privs


55 大家好,问下我怎么手工来修改磁盘组上的参数文件啊
   create pfile='本地硬盘/.....' from spfile;


56 请教各位一个题目
表中字段 A (unique)
值是  1,2,3,5,7....
然后给你一串数字.3,5,8,9
要求查出8,9,这两个值.有什么最快的SQL语句吗
select distinct * from a,b minus select * from a,b where a.c=b.c


57 问下 在用 insert 添加数据时对数据进行判断的SQL该如何写
   check


58 orcale 分析函数
   http://www.oracle.com.cn/viewthread.php?tid=31313&extra=page%3D1%26amp%3Bfilter%3Ddigest



59 有些需求太不好在数据库中弄的  参数是程序中传过来的 那么可以在程序中进行拆分。



60 其实对表任何的操作都是有锁的。。只是级别不同!!
   如果你想查询死锁。也是有很多方法。。hanganalyze也是比较直观的看出!!



61
请教一个问题呢
如果表中有非重复字段呢?
IMP在添加IGNORE的参数后还会不会重复累加呢?
它会报错。。。
不会累加
嘿嘿。。如果存在表可以直接truncate,或者覆盖掉


62 具体情况就是这样的啊,一张大表,每天可能还得有新的数据插入,由于索引的因素,导致效率极为低下。想解决这个问题,有什么好的办法或思路没?
   解决:插入可以做优化,另外把插入和查询放在两张表中、
         以空间换点时间是最快和修改最少的
       
         BI思想BI就是(Business Intelligence)

         BI的做法就是以空间换时间
         90%的BI应用都不要求实时性,允许数据有滞后,这是决策支持系统的应用特点,这个滞后区间就是数据抽取工具工作及OLAP的时间。
         如果实时性那可能就不行了,

63 用分区表试试,分区索引比全局索引慢多少

64 Oracle数据库提供对表或索引的分区方法有三种:

   ·范围分区

   ·Hash分区(散列分区)

   ·复合分区

    ·范围分区
     语法:
        create table 表名
        (
           字段。。。。
         )
         partition by range(分区的某个字段)
         (
          partition part_01 values less than(to_date(’2006-01-01’,’yyyy-mm-dd’))
          tablespace dinya_space01,
         )
         dinya_space01是创建的分区的名  part_01随便给的。
         select * from test_part partition(p1); 可以这样查询。

      其他的两个也是类似的。

65 计算每秒使用的空间的情况
   SELECT max(undoblks / ((end_time–begin_time)*24*3600)) from v$undostat;



66 如何从备份里单独恢复一张表?
   你加上table这个选项就好了

67 有什么方式能把非常大的数据快速、高效的加载到仓库中?
   append 和parallel


68 exp,导出某个用户下所有表和数据。格式是怎么写?
EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表


69 就是两张表的结构一样,那我对B表做了修改,现在要把B表修改的数据同步到A表
   insert into a select * fromm b

70 问大家个问题,当用户a往某张表中插入了一条记录,而没有执行COMMIT,此时为和其他用户也能看到这条记录呢
   原因:设置了脏数据。所以看到了。

71 shell备份脚本有两段内容
1.向一个文件里写记录,表示次文件被执行过,并留下执行时间
2.rman备份脚本



71 表a 列 a1 a2 
记录 1 a 
1 b 
2 x 
2 y 
2 z 
用select能选成以下结果: 
1 ab 
2 xyz 
解决:
select a1,wm_concat(a2) from a group by a1



72 查看执行计划。
explain plan for  后面加药进行操作的语句
然后再执行
select * from table(dbms_xplan.display());

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics