oracle
文章平均质量分 66
w__yi
这个作者很懒,什么都没留下…
展开
-
ORACLE to_char函数详解
Oracle函数to_char转化数字型指定小数点位数的用法比如最简单的应用:/*1.0123--->'1.0123'*/SelectTO_CHAR(1.0123)FROMDUAL/*123--->'123'*/SelectTO_CHAR(123)FROMDUAL接下来再看看下面:/*0.123 ---> '.123' */SELEC TO_CHAR转载 2011-12-01 14:17:51 · 506 阅读 · 0 评论 -
SQL练习___001
1.如何用一条语句把一张表的数据插入到另一张数据库表中?insert into tableA select * from tableB 2.如何用一条语句把一张表的数据插入到另一张不存在的数据库表中?create table tableB as select * from tableA; 3.有如下A、B两个表,如何将A表的数据查询出来,结果如B所示?原创 2013-03-05 17:31:38 · 606 阅读 · 0 评论 -
ORACLE恢复删除表或表记录
一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有:1、从flash back里查询被删除的表 select * from recyclebin2.执行表的恢复 flashback table tb to before drop,这里的tb代表你要恢复的表的名称。二:表数据恢复转载 2013-03-12 14:20:08 · 641 阅读 · 0 评论 -
oracle中row_number() over()分析函数用法
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。 row_number(转载 2013-03-01 15:51:31 · 526 阅读 · 0 评论 -
ORACLE触发器
8.1 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。ORACLE将触原创 2013-03-20 15:26:43 · 559 阅读 · 0 评论 -
PL/SQL 调试触发器存储过程
1.打开你需要调试的触发器,或着存储过程,设置断点2.新建测试窗口,触发语句写到begin中去3.然后点开始调试,运行原创 2012-06-12 13:39:26 · 456 阅读 · 0 评论 -
oracle 无order by , 默认排序问题
Oracle会根据具体的数据块的存储返回记录.oracle数据库是没有默认排序的 要排序必须加上order by 因为oracle是按块进行读取数据的 如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序oracle没有进行任何排序操作,rowid表示的是数据存放的数据块内部地址,如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客转载 2013-03-27 11:18:37 · 5775 阅读 · 0 评论 -
oracle中的exists 和not exists 用法详解
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (select T2.a from T2) ; T转载 2013-03-28 10:56:35 · 421 阅读 · 0 评论 -
数据库三大范式详解
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 范式说明 1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是转载 2014-02-25 21:38:27 · 43170 阅读 · 10 评论 -
Oracle计算时间差表达式
有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):天:ROUND(TO_NUMBER(END_DATE - START_DATE))小时:ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)分钟:ROUND(TO_NUMBER(END_DATE - START_DATE) * 2转载 2012-10-12 16:06:16 · 443 阅读 · 0 评论 -
如何在oracle中生成这样的编码0001,0002
首先建立一个1-9999的整数循环序列,CREATE SEQUENCE DATE_SEQ START WITH 1 --起始值(默认为1可省略) INCREMENT BY 1 --可省略(默认为1可省略) MAXVALUE 9999 --最大值 CYCLE --循环 NOCACHE --不缓存(可避免产生值不连续的情况) ORDER --保证按次序产生值 有原创 2012-10-10 14:25:26 · 2486 阅读 · 0 评论 -
oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件
总结:1 .三个配置文件都是放在$ORACLE_HOME\network\admin目录下。2 .sqlnet.ora确定解析方式3 .listener.ora上设SID_NAME,通常用于JDBC访问,对应的错误码为125054 .tnsnames.ora上设SERVICE_NAME,通常用于linux sqlplus客户端,对应的错误码为12514sqlnet.转载 2011-12-01 14:18:30 · 896 阅读 · 0 评论 -
oracle基本语法
1、表create table test (names varchar2(12),dates date,num int,dou double); 2、视图create or replace view vi_test as select * from test; 3、同义词create or replace synonym aafor dbusrcard001.a转载 2011-12-01 14:19:29 · 1415 阅读 · 1 评论 -
oracle数据导入导出
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp file=d:\daochu.dmp log=d:\test.log full=y2 将数据库中system用户与sys用户的表导出exp file=d:\daochu.dmp log=d:\test.log owner=(system,sys)3 将数据库中的表inne原创 2011-12-01 14:17:20 · 296 阅读 · 0 评论 -
oracle-快速删除重复的记录
1、通过创建临时表可以把数据先导入到一个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:creat table tbl_tmp (select distinct* from tbl);truncate table tbl;//清空表记录insert into tbl select * from tbl_tmp;//将临时表中的数据插回来。这种方法可以转载 2011-12-20 14:55:05 · 295 阅读 · 0 评论 -
查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
Oracle10g10.2.0.1.0标题:查看Oracle数据库表空间大小,是否需要增加表空间的数据文件 在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。 --1查看表空间已经使用的百分比Sql代码 select a.tablespace_name,a.bytes/1024/1024 "Sum MB"转载 2011-12-21 16:09:37 · 369 阅读 · 0 评论 -
oracle 基本语法 (2)
1.条件判断语句CASE WHEN (条件1)THEN (条件成立返回什么1)WHEN (条件2)THEN (条件成立返回什么2)ELSE (不成立返回什么)END;2.判断DECODE(条件值,'值1','返回值1','值2','返回值2',...,'缺省值');条件值 = 值1 就返回值1,=值2 就返回值2,都不等于就返回缺省值。原创 2011-12-13 11:39:59 · 323 阅读 · 0 评论 -
oracle创建表空间,创建用户
//创建数据表空间 create tablespace test_data logging datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent manageme转载 2011-12-21 16:23:06 · 446 阅读 · 0 评论 -
Oracle Merge 使用
Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.在Oracle 10g中MERGE有如下一些改进:1、UPDATE或INSERT子句是可选的2、UPDATE和INSERT子句可以加WHERE子句3、在ON条件中使用常量过滤转载 2012-08-21 13:46:40 · 514 阅读 · 0 评论 -
查询主键被外键引用的表
在删除一些表的时候,经常会遇到主键被一些关系表中的外键引用,而无法删除,这时候就要找到主键是被哪张表引用,在oracle中有一个视图可以帮助我们 做到这一点,它就是user_constraints,在以下的例子中,'TSP_PK'是主键的名称,'R'是说明我们要查询外键关系:Sql代码 select c.constraint_name, c.tab原创 2012-09-04 14:15:57 · 7230 阅读 · 1 评论 -
ORACLE分区表、分区索引(转)
ORACLE分区表、分区索引ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据就比较正常了,但是分区表并非乱建立,而其维护性也相对较为复杂一点,而索引的创建也是有点讲究的,这些以下尽量阐述详细即可。1、类型说转载 2014-05-14 10:10:34 · 674 阅读 · 0 评论