9i/10g (Expert Oracle)
huangyunzeng2008
坚定地要翻过这座山,但是如果你问我山那边是什么,我会告诉你我也不知道!
展开
-
更改Sql*plus的提示符
正常登陆sql*plus的步骤如下:sbdatabase*orcl-/home/oracle>sqlplus /nologSQL*Plus: Release 10.2.0.3.0 - Production on Sun May 9 19:50:24 2010Copyright (c) 1982, 2006, Oracle. All Rights Reserved.SQL>原创 2010-05-09 21:15:00 · 822 阅读 · 0 评论 -
tomcat6中连接池的使用
1、新建一个web工程,在tomcat的server.xml中,将应用和连接池绑定。 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="connec原创 2012-10-08 08:38:55 · 917 阅读 · 0 评论 -
将 oracle.sql.BLOB转为byte[] 输出(java)
/** * 将blob转化为byte[],只对纯文本的有效 * @param blob * @return */ private byte[] getBytes(BLOB blob) { try { InputStream ins = blob.getBinaryStream(); byte[] b = new byte[1024]; in原创 2012-09-04 13:34:29 · 10875 阅读 · 0 评论 -
oracle10gDbConsole不能启动的问题
oracle10g在安装时会自动配置好dbconsole,并配置成系统服务,方便我们管理数据库,但是但我们改变计算机名称或者更改IP地址时,dbconsole的服务就不能使用了,这个时候该怎么办呢? 实际上oracle为我们提供了重新配置的工具:emca -config dbcontrol db -repos recreate -host localhost,按照提示输入信息原创 2012-07-17 09:44:45 · 1697 阅读 · 0 评论 -
NULL也疯狂
今天刚好一个网友碰到这样的问题,给出两个语句,从字面上没什么差异,但是执行的结果却差的很远。这里给出类似的重现的实例,下面给出表的结构:create table TA( C1 NUMBER(20), C2 VARCHAR2(20));INSERT INTO ta VALUES(1,'2');INSERT INTO ta(c2) VALUES('3');create table原创 2010-01-21 22:21:00 · 568 阅读 · 0 评论 -
列表中表达式超过1000
今天在项目开发过程中,由于自己比较懒的原因,同时也没考虑到性能问题,由系统动态拼接了一个包含IN 列表的SQL语句,当程序执行时,报出了题目所示的错误,经过调试确实发现这个IN列表中的值超过了1000个。以前没有留意这个问题,原来oracle的in列表中还有这个限制,到最后没办法只能改为子查询来实现了,实际上子查询虽然写起来和看起来没有IN 来的直接,但是性能上要比in好得多。后来在网上看了些资料原创 2010-03-18 21:08:00 · 1105 阅读 · 0 评论 -
两个读写clob字段的小过程
首先给出建立测试表的语句:-- Create tablecreate table T_MATERIALS( ID NUMBER(4) not null, KEYWORDS VARCHAR2(100), CONTENTS CLOB); 建一个序列,来当物理主键:-- Create sequence create sequence SEQ_MATERIALSminva原创 2010-04-23 21:54:00 · 1070 阅读 · 0 评论 -
oracle model 入门(行间计算)
一、给出我的测试表和测试数据。CREATE TABLE MODEL_TEST( DOMAINS VARCHAR2(20), NAME VARCHAR2(20), YEAR NUMBER, INPUTS NUMBER, INCREAMENTS NUMBER)insert into MODEL_TEST (DOMAINS原创 2010-06-11 14:51:00 · 9133 阅读 · 2 评论 -
利用包来实现视图内容的不同展现
1.创建表并生成测试数据create table T_GRADES( ID VARCHAR2(20) PRIMARY KEY, SUBJECT VARCHAR2(20), GRADE NUMBER(3,1), TEACHER VARCHAR2(20), STUDENTID VARCHAR2(20));insert into T_GRADES原创 2010-01-07 12:48:00 · 769 阅读 · 2 评论 -
ORACLE外连接
今天开发过程中遇到了一个很麻烦的外连接的问题,到最后都没有找到很好的解决方法,最后只能用union all 实现了,虽然性能不比外连接,但至少拓展了外连接的局限性。 首先给出我测试用的三个表和数据(左右外连接道理是一样的,我只总结了左连接):KC21表:create table KC21( AKB020 VARCHAR2(14) not null, AKC190 VARCHA原创 2010-01-15 19:01:00 · 2017 阅读 · 1 评论 -
sign+decode =case
有这样的一个SQL语句,是用case写的,看起来很臃肿,而且我也很讨厌这样写case因为实在看起来不简洁,但是decode不支持boolean类型的表达式,尽管它很忠心的支持NULL。select case when 1 > 2 then '错' when 1 < 2 then '对' else原创 2010-03-23 21:01:00 · 533 阅读 · 0 评论 -
SQL 优化_3 统计数据改善执行计划
我比较喜欢的两个方法:1.dbms_stats.gather_schema_stats('SCOTT'); --仅给出方案名即可。这里虽然只写了一个参数,但是不代表过程原型是这样的,因为其他参数在这个工具包中都有默认设置不用写即可。下面给出oracle官方给出的该过程的详细描述:DBMS_STATS.GATHER_SCHEMA_STATS ( ownname VA原创 2010-03-23 21:49:00 · 562 阅读 · 1 评论 -
单机装两个或者是更多个数据库的问题
今天有个同事遇到这样的一个问题:她在本地机器上装了两个oracle数据库,当然了是一个数据库服务器。在进行登录时,(这里指的是利用操作系统管理员登陆来管理数据),总是登录到最近装的这个库里面,这个很好看出来,通过下面的简单的几个命令,就能看出来你现在所连接的数据库是哪个,sqlplus /nologconn /as sysdbaselect name from v$database;原创 2010-04-07 21:37:00 · 1470 阅读 · 0 评论 -
Out 类型参数引发的问题
在日常的开发中有一个不成文的规定,在开发的后台存储过程都必须要有一个prm_errmsg参数,类型是out varchar2的,目的是为了在捕获到相应的异常后,将异常信息赋给该变量,然后返回给客户端。 按照常理,这个prm_errmsg一般情况下是不赋值的,仅在程序出现异常时才有值,前台正常情况下不取这个变量的值,仅在异常时才会取这个值。但是有个同事就比较个性,他在任何情况下都要取这个原创 2010-05-05 19:18:00 · 936 阅读 · 0 评论 -
SQL优化-2 查看执行计划
一、得到执行计划 ,方法很多,我常用的有两种:1.explain plan for + 要执行的SQL语句。执行完后,可以通过这种方式来得到:select * from table(dbms_xplan.display).虽然这样的version比较老点,但是查看还是很方便的,省了很多设置。2.建立plan_table表,安装oracle时已经提供了建表语句:这里给出建表语句:cre原创 2010-03-23 20:40:00 · 499 阅读 · 0 评论 -
批量修改视图的定义
在数据库迁移的过程中,可能要更改一些user_objects的DDL,但是这些DDL存在着规律,而且量很大,再说了搞IT的都是些懒人,能批量搞定,肯定不会去一个一个修改这些objects的DDL。 今天我就遇到了这样的问题,tsybdd的schema中有好多的视图名称都是CS_开头的,而且这些视图都是在基于同一个数据库上的另外一个用户hbjb_kf_ts的表,因此他们的DDL语句后面都原创 2010-05-07 19:41:00 · 1123 阅读 · 0 评论 -
关联子查询与嵌套子查询
今天优化了一个sql语句,感觉速度好像是快了点,自己想想觉得也是,下面给出类似的例子,工作中的表就不拿来举例了。实际我们平常都在凭着自己的感觉在写SQL,其实跳出那个圈子你会发现能写出更好的。一、先给出我的表和数据,这里数据量少,可能不明显,只是表明一下这个意思!create table EMP( EMPNO NUMBER(4) not null, ENAME VAR原创 2010-01-18 21:07:00 · 3320 阅读 · 7 评论 -
GoldenGate 使用小结
GoldenGate 软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与 目标数据库同步。GoldenGate 可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据 仓库供应、交易跟踪、数据同步、集中/分发、容灾等转载 2012-09-19 08:59:52 · 799 阅读 · 0 评论