`
Rexwong
  • 浏览: 10210 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle--sql汇总

阅读更多

1sql汇总

一、重复操作查询

--where条件得distinct systemdicid作为唯一标识

select *

  from dmis_zd_systemdic t

 WHERE typeid = '06012'

   and t.systemdicid in (select min(systemdicid)

                           from dmis_zd_systemdic

                          where typeid = '06012'

                          group by name)

 order by orderno;

二、检查表是否存在

select count(tname) from tab where tname = upper('表名');

三、日期函数

--返回当前日期年度的第一天

select trunc(sysdate,'year') from dual;

--返回当前日期月份的第一天

select trunc(sysdate,'month') from dual;

--上月最后一天

select last_day(add_months(sysdate, -1)) from dual;

--给定日期后最近星期几得日期

select next_day(to_date('2009-12-01', 'yyyy-mm-dd'), '星期一') next_day

from dual;

四、同一张表中,根据一个字段更新另一个字段

update (select t.fgenerationtime as ftime, t.fgeneratedateall as str

          from dmis_fs_approvebook t

         where t.fgenerationtime is not null)

   set str = TO_CHAR(ftime, 'yyyy-mm-dd')

 where str is null;

五、重复数据查询

select * FROM EMP E

WHERE E.ROWID > (SELECT MIN(X.ROWID)

FROM EMP X

WHERE X.EMP_NO = E.EMP_NO);

六、合并不同表的数据(merge  into

merge into student s

using (select id, name, tel from test001) x

on (s.s_id = x.id)

when matched then

  update set s_name = x.name

when not matched then

  insert (s_id, s_name, s_age) values (x.id, x.name, x.tel);

commit;

七、查询执行sqlv$sql

select t.module, t.first_load_time, t.sql_text

  from v$sql t

 order by first_load_time desc;

2、数据库精度修改处理

-- Create table

/*drop table temp_data;*/

create table temp_data

(

  FID      VARCHAR2(40) not null,

  USEHOURS NUMBER(10) default 0,

  FVOLTAGE NUMBER(10) default 0,

  INVOLTAGE NUMBER(10) default 0

)

;

alter table TEMP_DATA

  add constraint tempfid primary key (FID);

 

insert into temp_data

  select a.fid, a.usehours, a.fvoltage, a.involtage

    from dmis_fs_factorymonthdetail a;

 

update dmis_fs_factorymonthdetail t

   set t.usehours = '', t.fvoltage = '', t.involtage = '';

 

alter table DMIS_FS_FACTORYMONTHDETAIL modify USEHOURS NUMBER(10,1);

alter table DMIS_FS_FACTORYMONTHDETAIL modify FVOLTAGE NUMBER(10,1);

alter table DMIS_FS_FACTORYMONTHDETAIL modify INVOLTAGE NUMBER(10,1);

 

update (select a.usehours  as tusehours,

               b.usehours  as fusehours,

               a.fvoltage  as tfvoltage,

               b.fvoltage  as ffvoltage,

               a.involtage as tinvoltage,

               b.involtage as finvoltage,

               a.fid       as ffid,

               b.fid       as tfid

          from dmis_fs_factorymonthdetail a, temp_data b

         where a.fid = b.fid) tt

   set tt.tusehours  = tt.fusehours,

       tt.tfvoltage  = tt.ffvoltage,

       tt.tinvoltage = tt.finvoltage

 where ffid = tfid;

  

drop table temp_data;

commit;

 

3、恢复drop掉的存储过程

sys用户登陆,执行如下的查询:

SQL> select text from dba_source as of timestamp to_timestamp('2009-03-06 09:45:00', 'YYYY-MM-DD HH24:MI:SS') where owner='IPRA' and name= 'P_IPACCHECK_NC' order by line;

4删除某个用户下的对象

--删除某个用户下的对象  

set heading off;  

set feedback off;  

spool c:\dropobj.sql;  

  prompt --Drop constraint  

 select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='R';  

 prompt --Drop tables  

 select 'drop table '||table_name ||';' from user_tables;   

   

 prompt --Drop view  

 select 'drop view ' ||view_name||';' from user_views;  

   

 prompt --Drop sequence  

 select

分享到:
评论
12 楼 ssqmeng 2010-04-15  
收藏了:)
11 楼 sokoo108 2010-04-15  
刃之舞 写道
wujiazhao88 写道
其实我建议在sql里面不要太多的业务逻辑。逻辑交给APP去处理吧

平衡APP服务器和数据库的双方压力,有些逻辑在数据库中处理更轻便

的确,有些业务算法对数据的依赖很大,在数据库中执行会提高不少效率。
10 楼 ironsabre 2010-04-13  
Rexwong 写道
helyho 写道
应用的维护是维护中成本的大头.所以我还是认为sql放在库中较好,但前提是管理好版本.

是,以前我们的项目有近一百个存储过程,并且分布了十多个节点。如果同步到这样的生产环境,如何管理版本,着实是一个问题,不知道兄弟有什么好方法。


跟管理java版本有区别吗?我们有更多的存储过程,从来没有听过有版本管理上的问题。
9 楼 Rexwong 2010-04-08  
andyu2008 写道
楼主写这些SQL的时候,考虑过性能问题没?

以上sql没有考虑性能,因为大多数都是支持测试部署人员进行数据库更新用的。均是他们在数据库直接操作。
8 楼 yn5411 2010-04-07  
我的insert,update,delete是app做,其它的特别是报表数据用存储过程来完成,充分利用数据库。
7 楼 andyu2008 2010-04-07  
楼主写这些SQL的时候,考虑过性能问题没?
6 楼 05150214 2010-04-07  
想不明白把业务逻辑放到app中处理?  明明应该在数据库里解决的
5 楼 Rexwong 2010-04-07  
helyho 写道
应用的维护是维护中成本的大头.所以我还是认为sql放在库中较好,但前提是管理好版本.

是,以前我们的项目有近一百个存储过程,并且分布了十多个节点。如果同步到这样的生产环境,如何管理版本,着实是一个问题,不知道兄弟有什么好方法。
4 楼 刃之舞 2010-04-07  
wujiazhao88 写道
其实我建议在sql里面不要太多的业务逻辑。逻辑交给APP去处理吧

平衡APP服务器和数据库的双方压力,有些逻辑在数据库中处理更轻便
3 楼 helyho 2010-04-07  
应用的维护是维护中成本的大头.所以我还是认为sql放在库中较好,但前提是管理好版本.
2 楼 Rexwong 2010-04-06  
wujiazhao88 写道
其实我建议在sql里面不要太多的业务逻辑。逻辑交给APP去处理吧

恩,的确是这个道理。但是有时报表需要写sql,还有就是项目上线时对于数据库的更改,弄成脚本,还是有他的好处的
1 楼 wujiazhao88 2010-04-06  
其实我建议在sql里面不要太多的业务逻辑。逻辑交给APP去处理吧

相关推荐

    oracle-sql语言初级教程ppt

    oracle入门级PPT文档,PLSQL Developer操作界面讲解、数据结构说明,建表语句、增删改查数据,以及常用的sql查询摘要汇总,试图基础语法等,节省您的学习时间。

    oracle常用SQL语句(汇总版).docx

    Oracle学习,常用sql语句汇总,适合新手使用。

    Oracle经典SQL语句

    ORACLE经典语句汇总 -- 字符串左填充和右填充,默认填充空格 -- 产生1~99行数据,少于一位则补0 -- 刪除相同行 -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 -- 自循环表中 由叶子节点查父节点 -- 查子...

    ORACLE中的经典SQL及函数

    第一部分:ORACLE常用经典SQL查询 第二部分:Oracle 最常用功能函数经典汇总

    ORACLE SQL查询汇总.rar

    ORACLE SQL:经典查询练手系列文章汇总 通过近一个月的努力,《经典查询练手系列》也快告一段落,但并不代表结束,以后还会增加!我很荣幸本系列每一篇文章都上了评论或推荐头条,这离不开大家的支持,这也促蹴了...

    Oracle sql语句优化规则汇总

    Oracle sql语句优化规则汇总

    Oracle维护常用SQL语句汇总

    Oracle维护常用SQL语句汇总

    oracle性能查询汇总.sql

    oracle\性能查询汇总.sql 包含监控事例的等待 \回滚段的争用情况 \监控 SGA 的命中率等

    oracle恢复测试.sql

    对Oracle各种恢复进行测试汇总,包括delete、update、drop、insert、truncate、init文件、临时文件、数据文件等。

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    Oracle监控数据库性能的SQL汇总 36 Oracle如何精确计算row的大小 38 PL/SQL编程 39 数据库的分组问题 41 oracle知识 42 数据库的导入导出 42 Oracle查询中rownum与Order by查询 45 oracle9i小结 46 Oracle 数据库的...

    Oracle基础(Oracle体系结构+PL/SQL命令)

    包含Oracle体系结构概述、解剖。以及PL/SQL命令大汇总。了解Oracle体系结构,是Oracle入门的前提。懂得PL/SQL命令,方便对体系结构的验证。

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    大数据Oracle理论+SQL+面试问题汇总+BI理论

    本课程适应从事大数据行业开发人员或数据库开发人员以及BI开发人员,其中包含有ORACLE的理论基础知识,OracleSQL语句详细讲解、面试问题汇总、BI理论知识。汇总了Oracle在开发中常用到的各种函数如分析函数、开窗...

    经典SQL脚本大全

    │ SQL Server到Oracle连接服务器的实现.sql │ SQL Server到SQLBASE连接服务器的实现.sql │ SQL Server到SYBASE连接服务器的实现.sql │ sql导出mysql.sql │ textcopy实现文件存取.sql │ Vb程序实现文件存取.sql...

    数据分层汇总交叉报表SQL语句实现方法

    在管理系统中,管理人员往往需要对业务数据进行不同需求的分层汇总,并产生各种形式交叉报表。为了实现此类报表,程序员需要构造层次结构非常复杂的SQL语句,甚至使用前台编程工具或其它报表工具来完成。 以下通过二...

    ORACLE SQL

    ORACLE SQL:经典查询练手系列文章汇总。通过近一个月的努力,《经典查询练手系列》也快告一段落,但并不代表结束,以后还会增加!我很荣幸本系列每一篇文章都上了评论或推荐头条,这离不开大家的支持,这也促蹴了我...

    oracle常用SQL语句(汇总版).zip

    oracle常用SQL语句(汇总版)

    ORACLE SQL :经典查询练手系列文章汇总.pdf

    ORACLE SQL :经典查询练手系列文章汇总.pdf

Global site tag (gtag.js) - Google Analytics