Oracle实用技巧

时间:2015-03-26 19:45:18   收藏:0   阅读:231

一. ORACLE SQL PLUS 使用技巧:

----①查找重复记录:

SELECT DRAWING,
DSNO
FROM EM5_PIPE_PREFAB
WHERE ROWID!=
(SELECT MAX(ROWID)
FROM EM5 _PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING
AND EM5_PIPE_PREFAB.DSNO=D.DSNO);  -- 和自己连接,查找其最大的行号,不等于最大行号的就是重复的数据

 

----删除重复记录:
DELETE
FROM EM5_PIPE_PREFAB
WHERE ROWID!=
(SELECT MAX(ROWID)
FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING
AND EM5_PIPE_PREFAB.DSNO=D.DSNO);

 

----② 快速编译所有视图
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。
SQL >SPOOL ON.SQL
SQL >SELECT ‘ALTER VIEW ‘ || TNAME(视图名) || ’COMPILE;’ FROM TAB;
SQL >SPOOL OFF

然后执行ON.SQL即可。SQL >@ON.SQL
当然,授权和创建同义词也可以快速进行,如:

SQL >SELECT ‘GRANT SELECT ON ’ || TNAME ||’ TO USERNAME;’ FROM TAB;
SQL >SELECT ‘CREATE SYNONYM ‘|| TNAME ||’ FOR USERNAME.’||TNAME||’;’ FROM TAB;

 

③ 用外联接提高表连接的查询速度
在作表连接(常用于视图)时,常使用以下方法来查询数据:
SELECT PAY_NO,
PROJECT_NAME
FROM A
WHERE A.PAY_NO NOT IN
(SELECT PAY_ NO
FROM B
WHERE VALUE >=120000);

 http://database.51cto.com/art/200904/120148.htm

原文:http://www.cnblogs.com/sotall/p/4369588.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!