GHGL项目总结-Oracle

Posted 小崔编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GHGL项目总结-Oracle相关的知识,希望对你有一定的参考价值。

项目当时用的是Oracle数据库,遇到的问题的一些总结。

1、中文乱码问题:

Oracle和pl/sql字符集一致即可。

http://blog.csdn.net/aovenus/article/details/12648751

2、循环添加数据

DECLARE

x number;

BEGIN

x :=1000000;

WHILE x < 5000000 LOOP

x := x + 1;

end loop;

END;

 

用游标循环添加数据

declare

  cursor curis SELECT QYBM FROM GH_QYXX WHERE ROWNUM <5;

begin

  for rc in cur loop

     insertinto GH_QYHF (ywlsdm, qybm, qysqzt, qybqzt, czyydm, czrydm, czsj)

    values(Seq_ywls.Nextval, rc.qybm,'0', '1', '符合条件','1', to_date('01-03-2017','dd-mm-yyyy'));

    end loop;

end;    

3、Oracle中的表结构导出到word  

http://blog.itpub.net/25444422/viewspace-2091023/


4、查出每组中时间最近的一条记录

http://bbs.csdn.net/topics/320234900/

a、

select * from GH_QYGSGZ t

where skssn=(selectmax(skssn)from GH_QYGSGZ where qybm=t.qybm)

 and skssy = (select max(skssy)from GH_QYGSGZ where qybm=t.qybm)

b、rownum:

select   * from ( select qybm,skssn,skssy,zgrs,gzze ,row_number() over(partition by qybm order by skssndesc, skssy desc) rn from GH_QYGSGZ)t1 where rn=1 and qybm ='00510148'

5、增加sequece序列

create sequence

 minvalue 1

 maxvalue 99999999

  startwith 1

 increment by 1

  CYCLE

 nocache;

 

http://blog.csdn.net/indexman/article/details/37653911

6、列转行、行转列

http://www.2cto.com/database/201501/367164.html

7、oracle sqlORA-01840:输入值对于日期格式够长

查一下输入的数据,例如to_date('2012-12','yyyy-mm-dd')因为你要转换的值不满足你提供的格式长度,就会报这个错

8、查看数据库sql语句执行性能

select * from (

select parsing_user_id,executions,sorts

command_type,disk_reads, SQL_FULLTEXT,sql_textfrom v$sqlarea orderby disk_reads desc

)whererownum<10

 

9、oracle函数

wmsys.wm_concat 统计某个字段相同,另一个字段不同

select * from (

select zzjgdm, wmsys.wm_concat(qymc) nsrsbhfrom gh_qyxx

 where length(zzjgdm)='10'group by zzjgdm ) where nsrsbh isnot null

 and instr(nsrsbh,',')>0and zzjgdm not in

 (select zzjgdmfrom gh_qyxx groupby zzjgdm having count(zzjgdm)>1);

 

相似度函数:用来比较两个字符串的相似度- SYS.UTL_MATCH.edit_distance_similarity(“”“”)

select* from (

  selectscjx.*,SYS.UTL_MATCH.edit_distance_similarity(#jydz,jdbcType=VARCHAR,scjxmc)semblance from gh_zd_scjx scjx

    order by semblance desc ) where rownum =1


10、从以下得出子查询中in最大是1000

<delete id="batchDelete">

        delete from t_user where id in (

        <foreach collection="list" item="item"separator=",">

            #item.departmentGuid

        </foreach>

        ) 

 </delete>

可以用exists关键字


以上是关于GHGL项目总结-Oracle的主要内容,如果未能解决你的问题,请参考以下文章

GHGL项目总结-mybatis

GHGL项目总结-CA

GHGL项目总结-CA

GHGL项目最后总结

GHGL项目最后总结

GHGL项目总结-DB2