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());