oracle,sql
文章平均质量分 57
tzc
tzc
展开
-
基于函数的索引
有时可能要在 where 字句中使用表达式.如果在where 字句的表达式或者函数里面已经包含某个列,则不会使用该列上面的索引. 为了方便此类操作oracle 提供了一个选项,可以基于一个或者多个列上的函数或者表达式上面创建索引.select * from app_accountpro t where t.acc_name= --0.125秒select * from app_accoun原创 2010-02-20 17:37:00 · 534 阅读 · 1 评论 -
oracle 集合操作符
oracle中有一类操作符是对集合进行操作的,我们称之为集合操作符(set operator).union(all) 是用来将多个select语句的结果集合进行合并处理。其中union会压缩各个结果集中的重复数据,而union all则不会。 intersect 是用来求两个集合的交集。 minus是用来从一个结果集中去除另一个集合中包含的部分。 对与各个集合操作符, 需要注意的地方的转载 2010-02-20 17:45:00 · 1206 阅读 · 0 评论 -
查看oracle执行计划
日常开发活动中,有时候需要对oracle执行计划进行监控,以此来调优程序和数据库方面的性能。常用方法有以下几种:一、通过PL/SQL Dev工具 1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。 2、先执行 EXPLA转载 2010-02-20 18:06:00 · 286 阅读 · 0 评论 -
oracle 数据文件太大了 硬盘不够的处理办法
在导完数据之后发现 oracle的安装盘只有几M的空间了。 现在有两个方案可以选择 1.把数据文件转移到另外一个盘去。 我导数据的时候是这样做的 1.新建一个表空间,为表空间添加一个数据文件(assure_dt)。2.新建用户,表空间指向步骤1新建的表空间。 然后导入。我用的是oracle 10g 问题1.为什么我添加的数据文件assure_dt没有后缀名? 问题2.这种数据文件的转移跟后缀名为d转载 2009-12-24 11:20:00 · 1562 阅读 · 4 评论 -
未在本地计算机上注册 oraoledb.oracle
<br /> 未在本地计算机上注册 oraoledb.oracle.<br /> 大的原因有两个: 1.需要重新注册oledb的dll(以10 为例 regsvr32 D:/oracle/10.2.0/db/BIN/OraOLEDB10.dll )<br /> 2.asp.net 账户没有对oracle 目录的读取权限.<br />在Oracle安装目录找到Oracle的主程序目录,点击鼠标右键->属性->安全,对ASP.NET帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文原创 2010-06-30 13:10:00 · 2336 阅读 · 0 评论 -
mssql oracle 复制表
<br />库内数据复制<br /><br />MS SQL Server <br />Insert into 复制表名称 select 语句 (复制表已经存在)<br />select 字段列表 into 复制表名称 from 表 (复制表不存在)<br /><br /> <br />Oracle <br />Insert into 复制表名称 select 语句 (复制表已经存在)<br />create table 复制表名称 as select 语句 (复制表不存在)<br /><br />复制数据原创 2010-07-13 10:14:00 · 293 阅读 · 0 评论 -
oracle 导入 导出表
<br />功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。<br />大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。<br /><br />Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接<br />(通过net8 assistant中本地-->服务命名 添加正确的服务命名 <br />其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)<br />这样你可以把数据导出到本地,虽然转载 2010-07-13 10:23:00 · 239 阅读 · 0 评论 -
trunc 函数
oracle 数据库当中field1 类型为date 格式为 yyyy-MM-dd hh:mi:ss 如2010-5-14 13:11:50现在有一个查询页面,页面上有个日期控件(值格式为yyyy-MM-dd).可选择 =, >=,这样是查不出数据的.怎么样对field1 这个字段进行格式化 只保留yyyy-MM-dd.使用trunc函数trunc实际上是trunca原创 2010-05-17 11:06:00 · 396 阅读 · 0 评论 -
sql group by 与 having的用法
查询重复记录--只有重复的担保受理号select ASSURE_REGISTER_ID from APP_DB t group by t.ASSURE_REGISTER_ID having count(ASSURE_REGISTER_ID)>1/*注意是having 不是where*/--包含所有数据 即重复的数据全部列出2.select * from APP_DBwhere ASSURE_REGISTER_ID in (select ASSURE_REGISTER_ID from原创 2010-08-10 21:19:00 · 685 阅读 · 0 评论 -
Oracle 的视图与索引
有表A(字段A1,A2)和表B(字段B1,B2). 字段A2,B2上都有索引. A,B 表联查 sql1 这个sql 非常快 2秒的样子 select * from A,B where A.A1=B.B1(+) and A2=值1sql2 这个sql 慢到让人无法忍受 select * from A,B where A.A1=B.B1(+) and B2=值1外联以后 表B原创 2010-02-16 15:46:00 · 399 阅读 · 0 评论 -
oracle 触发器
Create [or replace] trigger [模式.]触发器名 Before| after |instead of insert|delete|(update of 列名) {insert|delete|(update of 列名) }On 表名|视图|模式名|数据库名 [for each row] When 条件 PL/SQL块 说明原创 2010-02-09 09:30:00 · 240 阅读 · 1 评论 -
oracle 中 null 与'' 的区别
软件环境: 1、Windows NT4.0+ORACLE 8.0.4 2、ORACLE安装路径为:C:ORANT 含义解释: 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。 ORACLE允许任何一种数据类型的字段为空,除了以下两种情况: 1、主键字段(primary key), 2、定义时已经加了NOT转载 2009-01-14 15:03:00 · 457 阅读 · 0 评论 -
oracle 解锁
最近调试或者编译某个存储过程 pl/sql 总是没有响应,初步推断应该是oracle 锁住了。原因可能是操作的时候非法中断了。在网上找了大概有3种方法可以解锁。1.最直接的方法是重新启动数据库。到oracle enterprise manager 里选择数据库 用有dba 权限的帐号登陆,然后点关闭。然后启动就行了。操作是简单,但是时间比较长。2.在pl/sql 直接从,Tools->原创 2009-02-17 15:25:00 · 304 阅读 · 0 评论 -
多表连接查询
一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。 对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN表A记录如下:aID aNum1 a200501112 a200501123 a2005转载 2009-03-23 09:44:00 · 361 阅读 · 0 评论 -
ora-01113 ora-01110 解决方案
昨天进行了一下磁盘的碎片整理,结果今天早上oracle 就登陆不进去了.出现ora 01033 错误 .估计有什么文件被误删了. 步骤1: sqlplus SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 5月 12 09:12:59 2008C原创 2009-04-03 13:03:00 · 2621 阅读 · 0 评论 -
union,union all及动态给表添加,删除列
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如: select * from gc_dfys union s原创 2009-04-03 13:17:00 · 758 阅读 · 0 评论 -
sql 的执行顺序
1. 先where 后select 2. 先where 再group 再having 后select 3. 先where 再group 再having 再select 后order 4. 先join 再where 后select 因此在where 中是不允许使用别名的.如 select sid as id,sname as转载 2009-07-22 11:12:00 · 384 阅读 · 0 评论 -
dual 表简析
SQL> select sysdate from dual; SYSDATE ——— 28-SEP-03 哈哈, 确实DUAL的使用很方便. 但是大家知道DUAL倒底是什么OBJECT, 它有什么特殊的行为吗? 来,我们一起看一看. 首先搞清楚DUAL是什么OBJECT : SQL> connect system/manager Connec转载 2009-08-03 17:40:00 · 180 阅读 · 0 评论 -
ORACLE函数大全
ORACLE函数大全 常用oracle函数 SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE--------- ------转载 2009-05-26 19:47:00 · 228 阅读 · 0 评论 -
用pl/sql 导入excel 导入orcle
使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具。在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据COPY ,然后用PLSQL Developer工具。1 在PLSQL Developer的sql window里输入select *转载 2009-08-20 13:05:00 · 3939 阅读 · 3 评论 -
order by
今天使用order by 的时候发现一个奇怪的问题。SELECT * FROM APP_YQ_CUSTOMER where 1=1 AND YQ_IMPORTDATE >= TO_DATE(2009-01-25,yyyy-mm-dd) ORDER BY yq_bankcode这个sql 语句查询出来的结果每次排序都不一样。难道是没写排序方式? order by 默认的排序方式应该是升序原创 2009-08-25 10:34:00 · 261 阅读 · 0 评论 -
oracle 回退段 ORA-01562 ORA-01628
回滚段用于对数据库修改时, 保存原有的数据, 以便稍后可以通过使用ROLLBACK来恢复到修改前的数据; 另外, 回滚段可以为数据库中的所有进程提供读一致性. 因此, 回滚段设置的合理与否, 直接影响到数据库的性能. 回滚段的维护及查询(1) 创建回滚段__CREATE ROLLBACK SEGMENT RB01__TABLESPACE RBS1__STORAGE (____INITIAL原创 2009-11-06 14:24:00 · 2543 阅读 · 1 评论 -
SQL 判断身份证号码
现要求查询界面:不论15位或者18位身份证号都能查询出数据库中所有当前用户信息。方案1:create or replace function CONVERT_ID_15 (/*转换身份证号为15位*/ p_id2 in varchar2) return varchar2is p_id varchar2(20); id varchar2(15);begin p_id:=ltrim(p原创 2009-11-02 11:48:00 · 1726 阅读 · 0 评论 -
什么是分布式数据库系统
分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。 分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几点: 1、转载 2010-02-08 09:08:00 · 339 阅读 · 1 评论 -
decode 函数 判断 并且关系
<br />一个小应用 思路值得借鉴.<br />decode(nvl(loan_type, 0) || nvl(acc_isbsbank, 0)||decode(nvl(ACC_HOUSESTATUSEX, 0), 15, 1,0), '300', 1, 0)原创 2011-04-19 16:25:00 · 308 阅读 · 0 评论