DataBase
文章平均质量分 74
cai555
这个作者很懒,什么都没留下…
展开
-
大数据量分页存储过程效率测试附代码
原文地址:http://www.cnblogs.com/Joshualang/archive/2009/05/17/1458709.html max代码的主要逻辑:select top '+str(@pageSize)+' * From tb_TestTable where(ID>(select max(id) From (select top '+str(@pageSize...原创 2009-09-24 11:17:28 · 131 阅读 · 0 评论 -
oracle 判断字段中的中文的方法
判断字段中的中文的方法,与oracle的字符集有关, AL32UTF8字符集下:中文length() 的结果为3,ascii()的结果为8位,asciistr()可以判断 eg: select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET'; 1 NLS_CHARACTERSET AL32UTF8 selec...原创 2010-01-18 15:30:29 · 463 阅读 · 0 评论 -
数据库与数据仓库的区别
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查...原创 2010-01-19 12:38:13 · 89 阅读 · 0 评论 -
oracle-merge用法详解
原文:http://blog.chinaunix.net/u/12457/showart_346642.html Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.在Oracle 10g中MERGE有如下一...原创 2010-01-26 14:10:14 · 80 阅读 · 0 评论 -
MySQL 5.1 无法启动 1067 错误解决方法
MySQL 5.1 无法启动 1067 错误解决方法这两天想装个MySQL 玩玩,去官网下了个 5.1 Community Server.安装常规的方法安装完毕,打开配置工具,发现竟然无法启动。打开命令行工具,直接执行 net start mysql,报错1067.这下郁闷了,网上搜索到的解决方法基本都是说my.ini文件错误,要求修改basedir和datadir两个配置项到正确...原创 2010-07-13 23:06:51 · 358 阅读 · 0 评论 -
Oracle中的TIMESTAMP数据类型
timestamp格式表示的时间如何转换成普通格式: SQL> SELECT to_char(tp,'dd-mm-yyyy hh24:mi:ss.ff') FROM TIMESTAMPTEST; ////////////////////////////////////////////////////////////////////////////////...原创 2009-09-01 14:19:51 · 1013 阅读 · 0 评论 -
无法连接 SQL Server 不可用或不存在 无法连接, SQL Server 不存在或拒绝网络访问..请问这是怎么回事?...
远程连接sql server 2000服务器的解决方案 一 看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.11...原创 2009-09-04 14:56:28 · 4705 阅读 · 0 评论 -
浅谈SQL Server触发器的使用
浅谈SQL Server触发器的使用 收藏来源:http://blog.csdn.net/zouhu562/archive/2009/08/01/4400812.aspx <script type="text/javascript"> document.body.oncopy = func...原创 2009-09-04 17:06:07 · 123 阅读 · 0 评论 -
利用trigger实现oracle记录插入时为时间戳赋值
create table timestamp_test(a timestamp,b varchar2(10));create or replace trigger ins_timestampbefore inserton timestamp_testfor each rowbegin :new.a := sysdate;end;/insert into t...原创 2009-09-04 17:20:21 · 306 阅读 · 0 评论 -
利用trigger实现MSSQLServer2000时间戳功能
create table test(ID BIGINT PRIMARY KEY, update DATETIME); Create Trigger TG_testOn testAfter Update, insertAsUpdate testSet update=GETDATE()from test a,inserted bwhere a.ID = b.ID;2009-09-04 17:23:26 · 109 阅读 · 0 评论 -
Oracle触发器介绍
语句级触发器我们先看一个AFTER-INSERT-STATEMENT触发器:CREATE OR REPLACE TRIGGER temp_aisAFTER INSERT ON TEMPBEGIN dbms_output.put_line('executing temp_ais');END;看一下下面语句的结果:SQL> set feedback offSQL> INSERT IN...原创 2009-09-07 09:25:36 · 94 阅读 · 0 评论 -
ORACLE中用rownum分页并排序的SQL语句
以前分页习惯用这样的SQL语句:select * from (select t.*,rownum row_num from mytable t order by t.id) b where b.row_num between 1 and 10 结果发现由于该语句会先生成rownum 后执行order by 子句,因而排序结果根本不对,后来在GOOGLE上搜到一篇...原创 2009-09-10 10:37:22 · 79 阅读 · 0 评论 -
SQLServer 实现rownum 的功能
方法1:with temp as( selectrow_number() over(order by cityID) as rownum,cityName from city )select * from tempwhere rownum between 10 and 20go解释:1 此方法把括号里的查询结果放到变量:temp ...原创 2009-09-10 10:39:58 · 194 阅读 · 0 评论 -
Oracle TRANSLATE用法
语法:TRANSLATE(expr,from,to)expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。举例:select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)select translate('abcbbaadef','bad','#@') ...原创 2009-07-29 13:07:35 · 401 阅读 · 0 评论 -
SQL cook book笔记一
ProblemYou have used aliases to provide more meaningful column names for your result set and would like to exclude some of the rows using the WHERE clause. However, your attempt to reference ali...2009-07-29 10:36:07 · 137 阅读 · 0 评论 -
Oracle索引与where
一个ORACLE查询中,有N多的查询条件,要把:一次可以缩小范围最大的条件,放在前面,还是,后面呢? 如果不考虑索引,把缩小范围最大的条件放在where语句的最后 如果要利用索引,把第一索引放在紧靠where语句的地方...原创 2009-09-24 12:24:20 · 549 阅读 · 0 评论 -
char,varchar,nvarchar有什么区别
一 、 nchar 和 nvarchar nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。 nchar(n) 包含 ...原创 2009-09-25 13:08:35 · 195 阅读 · 0 评论 -
换种方法,提高left join查询的效率
表之间使用联结查询时,以left join为例,当联结的表较多,并且符合条件的记录个数也很多时,查询的效率变得十分低下,不过改变一下方法,却可以避免这个问题。 例如:要对系统中各个公司的业务进行统计,公司的业务有很多:业务1、业务2、业务3......业务10,就假设有10项业务,初始的想法是将公司表与这10张业务表进行left join,按公司分组,然后使用count(distince 业...原创 2009-09-28 15:11:39 · 2059 阅读 · 0 评论 -
mssql附加数据库后出现“对象名XXXX无效”
mssql数据库服务器进行硬件升级后,采用附加数据库的方式还原了数据库居然访问不了,出现“对像名XXXX无效的提示”解决办法:1、更改表的所有者为dbo,可以在查询分析器里边执行如下语句: exec sp_msforeachtable "sp_changeobjectowner '原所有者名称','dbo'"注意这个只能更改表的所有者,存储过程可以这样修改:exec sp_c...原创 2009-11-19 16:48:04 · 877 阅读 · 0 评论 -
聚族索引、非聚族索引、组合索引的含义和用途
一、什么是索引索引可以理解为我们小时候使用的汉语字典的索引,如果想在字典中查找一个字,一页一页地翻字典查找是非常慢的,但如果使用字典的索引进行查询,很快就可以查到了。数据库的索引也是类似的。数据库中的索引一般是按照B树来组织的,叶结点指向真正的数据,B树的定义我这里就不介绍了,有兴趣的话可以去翻翻数据结构的书。二、聚族索引在这里还是用字典来进行类比,一般来说汉语字典中有...原创 2009-11-26 10:48:21 · 126 阅读 · 0 评论 -
oracle存储过程调用
今天写了一个存储过程,发现PL/SQL里面这个存储过程图标上老是出现小xx,说是编译通过但是存在错误。却又不说哪里出错,后来发现右键点击存储过程,然后选择“重新编译参照对象”,然后点右边那个刷新按钮,接着点“编译无效对象”,就可以看到存储过程语句错在哪里了。 创建好了存储过程,按照网上有些执行的方法,发现行不通,比如: 写道存储过程的执行sql>variable test...2009-12-02 15:24:28 · 106 阅读 · 0 评论 -
ORACLE存储过程update不成功的另一个原因
今天,一个存储过程遇到了一个奇怪的问题,没有任何的出错信息,但是更新的内容去没有写入表。单步调试也正常,DBMS输出的内容来看,参数内容没有问题,这是怎么一回事情呢?看了这篇文章:oracle存储过程中update不成功的一个原因尝试着改变了变量名字,却不起作用,最后发现是传入参数的类型问题: 有一个参数是这样的类型:account varchar2 而update语句中直接使...2009-12-11 10:45:03 · 679 阅读 · 0 评论 -
ORACLE中有没有判断一个字符串是否可以转换成数字的函数
Org: http://topic.csdn.net/t/20031225/11/2601362.html 没有。如果是在pl/sql ,使用to_char() ,非法的可以触发exception ============================================== 那有点惨,我想在SELECT中取某一字段的值,如果它不是数字(空,''或者字...原创 2009-12-23 09:56:49 · 804 阅读 · 0 评论 -
调用oracle10g 存储过程利用sys_refcursor返回结果集
SQL> create table test 2 ( 3 c1 varchar2(10) 4 ) 5 ; Table created SQL> insert into test values(1); 1 row inserted SQL> insert into test values(2); 1 row inserted SQL> commit...原创 2009-12-23 12:16:07 · 154 阅读 · 0 评论 -
筛选数据库重复记录
请问以下两个功能如何实现? (1)如何选出重复的记录? ID cname tc bm ------------------------- 1 张三 1 ...原创 2010-01-05 11:07:29 · 267 阅读 · 0 评论 -
oracle 与 SQL Server 利用select 建表和update的区别
Oracle: 建表可以使用: create table emp1asselect * from emp where deptno = 20;这种方式。 利用select update,则要复杂些 写道我们可以这么写Update empSet(sal,comm) = (select sal,comm. From emp1 where e...原创 2010-01-05 14:47:42 · 150 阅读 · 0 评论 -
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
想要造一点随机数据,日期等于ID%30,结果却碰到了:“从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界”的问题: select cast('2010-01-'+cast(ID%30 as varchar)+' 15:34:35' as datetime) from table原因是,有些ID%30等于0导致出现...原创 2010-01-11 10:04:51 · 185 阅读 · 0 评论 -
连接VMWare上的oracle
在vmware上面安装了一个oracle,主机却怎么也连接不上,也无法ping到。解决办法是,设置vmware使用bridge方式连接网络,然后将虚拟机xp中的防火墙关闭。原创 2010-07-05 10:55:38 · 197 阅读 · 0 评论