﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大鱼-随笔分类-oracle</title><link>http://www.blogjava.net/luluyanglu/category/38270.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 23 Mar 2011 07:01:49 GMT</lastBuildDate><pubDate>Wed, 23 Mar 2011 07:01:49 GMT</pubDate><ttl>60</ttl><item><title>oracle 使用dblink和同义词连接远程数据库表</title><link>http://www.blogjava.net/luluyanglu/archive/2011/03/22/346752.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Tue, 22 Mar 2011 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/03/22/346752.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/346752.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/03/22/346752.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/346752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/346752.html</trackback:ping><description><![CDATA[小记：<br />
<br />
首先建立数据库连接：<br />
<br />
&nbsp; -- Drop existing database link <br />
drop public database link DB4960;<br />
-- Create database link <br />
create public database link DB4960<br />
&nbsp; connect to&nbsp;ctile identified by ctile&nbsp;<br />
&nbsp; using '(DESCRIPTION =<br />
(ADDRESS_LIST =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.11.41.60)(PORT = 1521))<br />
)<br />
(CONNECT_DATA =<br />
(SERVICE_NAME = ORCL)<br />
)<br />
)';<br />
<br />
<br />
然后需要建立同义词：<br />
create public synonym mistel.table for <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#105;&#115;&#116;&#101;&#108;&#46;&#116;&#97;&#98;&#108;&#101;&#64;&#68;&#66;&#52;&#57;&#54;&#48;">mistel.table@DB4960</a>; <br />
<br />
然后就可以在本地使用select &nbsp;*&nbsp; from mistel.table 查询DB4960上的数据库表。 
<img src ="http://www.blogjava.net/luluyanglu/aggbug/346752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-03-22 14:44 <a href="http://www.blogjava.net/luluyanglu/archive/2011/03/22/346752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>误删除了oracle表的数据,恢复方法</title><link>http://www.blogjava.net/luluyanglu/archive/2010/10/20/335723.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Wed, 20 Oct 2010 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2010/10/20/335723.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/335723.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2010/10/20/335723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/335723.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/335723.html</trackback:ping><description><![CDATA[同事找回时操作的数据库为oracle 10g , 之前删除方式为delete 不晓得trancate好使不<br />
<br />
　SCN（系统改变号），它的英文全拼为：System Change Number ，它是数据库中非常重要的一个数据结构。<br />
　　SCN提供了Oracle的内部时钟机制，可被看作逻辑时钟，这对于恢复操作是至关重要的<br />
　　注释：Oracle 仅根据 SCN 执行恢复。<br />
　　它定义了数据库在某个确切时刻提交的版本。在事物提交时，它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指， System Commit Number ，而通常 SCN 在提交时才变化，所以很多情况下，<br />
　　这两个名词经常被交替使用。<br />
　　究竟是哪个词其实对我们来说并不是最重要的，重要的是我们知道 SCN 是 Oracle 内部的时钟机制， Oracle 通过 SCN 来维护数据库的一致性，并通过SCN 实施 Oracle 至关重要的恢复机制。<br />
　　具体执行流程我们可从以下几个示例图中体会;<br />
　　<span style="color: #0000ff">1.原表记录 $ sqlplus eygle/eygle<br />
　　SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005<br />
　　Copyright (c) 1982, 2004, Oracle. All rights reserved.<br />
　　Connected to:<br />
　　Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production<br />
　　With the Partitioning, OLAP and Data Mining options</span><br />
　　<span style="color: #ff0000">SQL&gt;select count(*) from t1;</span><br />
　　<span style="color: #0000ff">COUNT(*)</span><br />
　　----------<br />
　　9318<br />
　　2.误删除所有记录<br />
　　并且提交更改。<br />
　　<span style="color: #ff0000">SQL&gt;delete from t1;</span><br />
　　9318 rows deleted.<br />
　　<span style="color: #ff0000">SQL&gt;commit;</span><br />
　　Commit complete.<br />
　　<span style="color: #ff0000">SQL&gt;select count(*) from t1;</span><br />
　　<span style="color: #0000ff">COUNT(*)</span><br />
　　----------<br />
　　0<br />
　　3.获得当前SCN<br />
　　如果能够确切知道删除之前SCN最好，如果不知道，可以进行闪回查询尝试.<br />
　　<span style="color: #ff0000">SQL&gt;select dbms_flashback.get_system_change_number from dual;</span><br />
　　GET_SYSTEM_CHANGE_NUMBER<br />
　　------------------------<br />
　　10671006<br />
　　<span style="color: #ff0000">SQL&gt;select count(*) from t1 as of scn 10671000;</span><br />
　　COUNT(*)<br />
　　----------<br />
　　0<br />
　　<span style="color: #ff0000">SQL&gt;select count(*) from t1 as of scn 10670000;</span><br />
　　COUNT(*)<br />
　　----------<br />
　　9318<br />
　　我们看到在SCN=10670000时，数据都在。<br />
　　4.恢复数据.<br />
　　<span style="color: #ff0000">SQL&gt;insert into t1 select * from t1 as of scn 10670000;</span><br />
　　9318 rows created.<br />
　　<span style="color: #ff0000">SQL&gt;commit;</span><br />
　　Commit complete.<br />
　<span style="color: #ff0000">　SQL&gt;select count(*) from t1;</span><br />
　　COUNT(*)<br />
　　----------<br />
　　9318<br />
　　文章2<br />
　　误删数据后的还原<br />
　　<span style="color: #ff0000">select timestamp_to_scn(to_timestamp('2009-03-13 09:00:00','YYYY-MM-DD HH:MI:SS')) from dual;</span><br />
　　结果:13526973<br />
　　将删除时间转换为scn<br />
　　<span style="color: #ff0000">select * from reportinfo<br />
　　AS OF SCN 13526973</span><br />
　　将reportinfo表中的scn点的数据取出<br />
　　然后可以根据这个数据进行还原操作<br />
　　<span style="color: #ff0000">create table reporttest as select * from reportinfo where 1=0;<br />
　　insert into reporttest select * from reportinfo AS OF SCN 13526973;</span><br />
　　--上面两句应该可以合成一句<br />
　　--<span style="color: #ff0000">create table reporttest as select * from reportinfo AS OF SCN 13526973;</span><br />
　　这是reporttest表中就是scn点的reportinfo数据.处理即可<br />
<img src ="http://www.blogjava.net/luluyanglu/aggbug/335723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2010-10-20 22:20 <a href="http://www.blogjava.net/luluyanglu/archive/2010/10/20/335723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>精妙SQL语句收集</title><link>http://www.blogjava.net/luluyanglu/archive/2010/04/19/318724.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 19 Apr 2010 04:53:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2010/04/19/318724.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/318724.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2010/04/19/318724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/318724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/318724.html</trackback:ping><description><![CDATA[<p>SQL语句先前写的时候，很容易把一些特殊的用法忘记，我特此整理了一下SQL语句操作。</p>
<p>一、基础</p>
<p>1、说明：创建数据库</p>
<p>CREATE DATABASE database-name </p>
<p>2、说明：删除数据库</p>
<p>drop database dbname</p>
<p>3、说明：备份sql server</p>
<p>--- 创建 备份数据的 device</p>
<p>USE master</p>
<p>EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'</p>
<p>--- 开始 备份</p>
<p>BACKUP DATABASE pubs TO testBack </p>
<p>4、说明：创建新表</p>
<p>create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)</p>
<p>根据已有的表创建新表： </p>
<p>A：create table tab_new like tab_old (使用旧表创建新表)</p>
<p>B：create table tab_new as select col1,col2... from tab_old definition only</p>
<p>5、说明：删除新表</p>
<p>drop table tabname </p>
<p>6、说明：增加一个列</p>
<p>Alter table tabname add column col type</p>
<p>注：列增加后将不能删除。DB2中列加上后数据类型也不能改变，唯一能改变的是增加varchar类型的长度。</p>
<p>7、说明：添加主键： Alter table tabname add primary key(col) </p>
<p>说明：删除主键： Alter table tabname drop primary key(col) </p>
<p>8、说明：创建索引：create [unique] index idxname on tabname(col....) </p>
<p>删除索引：drop index idxname</p>
<p>注：索引是不可更改的，想更改必须删除重新建。</p>
<p>9、说明：创建视图：create view viewname as select statement </p>
<p>删除视图：drop view viewname</p>
<p>10、说明：几个简单的基本的sql语句</p>
<p>选择：select * from table1 where 范围</p>
<p>插入：insert into table1(field1,field2) values(value1,value2)</p>
<p>删除：delete from table1 where 范围</p>
<p>更新：update table1 set field1=value1 where 范围</p>
<p>查找：select * from table1 where field1 like '%value1%' ---like的语法很精妙，查资料!</p>
<p>排序：select * from table1 order by field1,field2 [desc]</p>
<p>总数：select count as totalcount from table1</p>
<p>求和：select sum(field1) as sumvalue from table1</p>
<p>平均：select avg(field1) as avgvalue from table1</p>
<p>最大：select max(field1) as maxvalue from table1</p>
<p>最小：select min(field1) as minvalue from table1</p>
<p>11、说明：几个高级查询运算词</p>
<p>A： UNION 运算符 </p>
<p>UNION 运算符通过组合其他两个结果表（例如 TABLE1 和 TABLE2）并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时（即 UNION ALL），不消除重复行。两种情况下，派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 </p>
<p>B： EXCEPT 运算符 </p>
<p>EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL)，不消除重复行。 </p>
<p>C： INTERSECT 运算符</p>
<p>INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL)，不消除重复行。 </p>
<p>注：使用运算词的几个查询结果行必须是一致的。 </p>
<p>12、说明：使用外连接 </p>
<p>A、left outer join： </p>
<p>左外连接（左连接）：结果集几包括连接表的匹配行，也包括左连接表的所有行。 </p>
<p>SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c</p>
<p>B：right outer join: </p>
<p>右外连接(右连接)：结果集既包括连接表的匹配连接行，也包括右连接表的所有行。 </p>
<p>C：full outer join： </p>
<p>全外连接：不仅包括符号连接表的匹配行，还包括两个连接表中的所有记录。</p>
<p>二、提升</p>
<p>1、说明：复制表(只复制结构,源表名：a 新表名：b) (Access可用)</p>
<p>法一：select * into b from a where 1&lt;&gt;1</p>
<p>法二：select top 0 * into b from a</p>
<p>2、说明：拷贝表(拷贝数据,源表名：a 目标表名：b) (Access可用)</p>
<p>insert into b(a, b, c) select d,e,f from b;</p>
<p>3、说明：跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)</p>
<p>insert into b(a, b, c) select d,e,f from b in '具体数据库' where 条件</p>
<p>例子：..from b in '"&amp;Server.MapPath(".")&amp;"\data.mdb" &amp;"' where..</p>
<p>4、说明：子查询(表名1：a 表名2：b)</p>
<p>select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)</p>
<p>5、说明：显示文章、提交人和最后回复时间</p>
<p>select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b</p>
<p>6、说明：外连接查询(表名1：a 表名2：b)</p>
<p>select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c</p>
<p>7、说明：在线视图查询(表名1：a )</p>
<p>select * from (SELECT a,b,c FROM a) T where t.a &gt; 1;</p>
<p>8、说明：between的用法,between限制查询数据范围时包括了边界值,not between不包括</p>
<p>select * from table1 where time between time1 and time2</p>
<p>select a,b,c, from table1 where a not between 数值1 and 数值2</p>
<p>9、说明：in 的使用方法</p>
<p>select * from table1 where a [not] in ('值1','值2','值4','值6')</p>
<p>10、说明：两张关联表，删除主表中已经在副表中没有的信息 </p>
<p>delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )</p>
<p>11、说明：四表联查问题：</p>
<p>select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....</p>
<p>12、说明：日程安排提前五分钟提醒 </p>
<p>SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&gt;5</p>
<p>13、说明：一条sql 语句搞定数据库分页</p>
<p>select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段</p>
<p>14、说明：前10条记录</p>
<p>select top 10 * form table1 where 范围</p>
<p>15、说明：选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)</p>
<p>select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)</p>
<p>16、说明：包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表</p>
<p>(select a from tableA ) except (select a from tableB) except (select a from tableC)</p>
<p>17、说明：随机取出10条数据</p>
<p>select top 10 * from tablename order by newid()</p>
<p>18、说明：随机选择记录</p>
<p>select newid()</p>
<p>19、说明：删除重复记录</p>
<p>Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)</p>
<p>20、说明：列出数据库里所有的表名</p>
<p>select name from sysobjects where type='U' </p>
<p>21、说明：列出表里的所有的</p>
<p>select name from syscolumns where id=object_id('TableName')</p>
<p>22、说明：列示type、vender、pcs字段，以type字段排列，case可以方便地实现多重选择，类似select 中的case。</p>
<p>select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type</p>
<p>显示结果：</p>
<p>type vender pcs</p>
<p>电脑 A 1</p>
<p>电脑 A 1</p>
<p>光盘 B 2</p>
<p>光盘 A 2</p>
<p>手机 B 3</p>
<p>手机 C 3</p>
<p>23、说明：初始化表table1</p>
<p>TRUNCATE TABLE table1</p>
<p>24、说明：选择从10到15的记录</p>
<p>select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc</p>
<p>三、技巧</p>
<p>1、1=1，1=2的使用，在SQL语句组合时用的较多</p>
<p>"where 1=1" 是表示选择全部&nbsp;&nbsp; "where 1=2"全部不选，</p>
<p>如：</p>
<p>if @strWhere !='' </p>
<p>begin</p>
<p>set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere </p>
<p>end</p>
<p>else </p>
<p>begin</p>
<p>set @strSQL = 'select count(*) as Total from [' + @tblName + ']' </p>
<p>end </p>
<p>我们可以直接写成</p>
<p>set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere </p>
<p>2、收缩数据库</p>
<p>--重建索引</p>
<p>DBCC REINDEX</p>
<p>DBCC INDEXDEFRAG</p>
<p>--收缩数据和日志</p>
<p>DBCC SHRINKDB</p>
<p>DBCC SHRINKFILE</p>
<p>3、压缩数据库</p>
<p>dbcc shrinkdatabase(dbname)</p>
<p>4、转移数据库给新用户以已存在用户权限</p>
<p>exec sp_change_users_login 'update_one','newname','oldname'</p>
<p>go</p>
<p>5、检查备份集</p>
<p>RESTORE VERIFYONLY from disk='E:\dvbbs.bak'</p>
<p>6、修复数据库</p>
<p>ALTER DATABASE [dvbbs] SET SINGLE_USER</p>
<p>GO</p>
<p>DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK</p>
<p>GO</p>
<p>ALTER DATABASE [dvbbs] SET MULTI_USER</p>
<p>GO</p>
<p>7、日志清除</p>
<p>SET NOCOUNT ON</p>
<p>DECLARE @LogicalFileName sysname,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @MaxMinutes INT,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @NewSize INT</p>
<p>&nbsp;</p>
<p>USE&nbsp;&nbsp;&nbsp;&nbsp; tablename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 要操作的数据库名</p>
<p>SELECT&nbsp; @LogicalFileName = 'tablename_log',&nbsp; -- 日志文件名</p>
<p>@MaxMinutes = 10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Limit on time allowed to wrap log.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @NewSize = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 你想设定的日志文件的大小(M)</p>
<p>-- Setup / initialize</p>
<p>DECLARE @OriginalSize int</p>
<p>SELECT @OriginalSize = size </p>
<p>&nbsp; FROM sysfiles</p>
<p>&nbsp; WHERE name = @LogicalFileName</p>
<p>SELECT 'Original Size of ' + db_name() + ' LOG is ' + </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'</p>
<p>&nbsp; FROM sysfiles</p>
<p>&nbsp; WHERE name = @LogicalFileName</p>
<p>CREATE TABLE DummyTrans</p>
<p>&nbsp; (DummyColumn char (8000) not null)</p>
<p>&nbsp;</p>
<p>DECLARE @Counter&nbsp;&nbsp; INT,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @StartTime DATETIME,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @TruncLog&nbsp; VARCHAR(255)</p>
<p>SELECT&nbsp; @StartTime = GETDATE(),</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'</p>
<p>DBCC SHRINKFILE (@LogicalFileName, @NewSize)</p>
<p>EXEC (@TruncLog)</p>
<p>-- Wrap the log if necessary.</p>
<p>WHILE&nbsp;&nbsp;&nbsp;&nbsp; @MaxMinutes &gt; DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND (@OriginalSize * 8 /1024) &gt; @NewSize&nbsp; </p>
<p>&nbsp; BEGIN -- Outer loop.</p>
<p>&nbsp;&nbsp;&nbsp; SELECT @Counter = 0</p>
<p>&nbsp;&nbsp;&nbsp; WHILE&nbsp; ((@Counter &lt; @OriginalSize / 16) AND (@Counter &lt; 50000))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BEGIN -- update</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INSERT DummyTrans VALUES ('Fill Log')&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DELETE DummyTrans</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT @Counter = @Counter + 1</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; EXEC (@TruncLog)&nbsp; </p>
<p>&nbsp; END&nbsp;&nbsp; </p>
<p>SELECT 'Final Size of ' + db_name() + ' LOG is ' +</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONVERT(VARCHAR(30),size) + ' 8K pages or ' + </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'</p>
<p>&nbsp; FROM sysfiles </p>
<p>&nbsp; WHERE name = @LogicalFileName</p>
<p>DROP TABLE DummyTrans</p>
<p>SET NOCOUNT OFF </p>
<p>8、说明：更改某个表</p>
<p>exec sp_changeobjectowner 'tablename','dbo'</p>
<p>9、存储更改全部表</p>
<p>CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch</p>
<p>&nbsp;@OldOwner as NVARCHAR(128),</p>
<p>&nbsp;@NewOwner as NVARCHAR(128)</p>
<p>AS</p>
<p>DECLARE @Name&nbsp;&nbsp; as NVARCHAR(128)</p>
<p>DECLARE @Owner&nbsp; as NVARCHAR(128)</p>
<p>DECLARE @OwnerName&nbsp; as NVARCHAR(128)</p>
<p>DECLARE curObject CURSOR FOR </p>
<p>&nbsp;select 'Name'&nbsp;&nbsp; = name,</p>
<p>&nbsp; 'Owner'&nbsp;&nbsp; = user_name(uid)</p>
<p>&nbsp;from sysobjects</p>
<p>&nbsp;where user_name(uid)=@OldOwner</p>
<p>&nbsp;order by name</p>
<p>OPEN&nbsp; curObject</p>
<p>FETCH NEXT FROM curObject INTO @Name, @Owner</p>
<p>WHILE(@@FETCH_STATUS=0)</p>
<p>BEGIN&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;if @Owner=@OldOwner </p>
<p>&nbsp;begin</p>
<p>&nbsp; set @OwnerName = @OldOwner + '.' + rtrim(@Name)</p>
<p>&nbsp; exec sp_changeobjectowner @OwnerName, @NewOwner</p>
<p>&nbsp;end</p>
<p>-- select @name,@NewOwner,@OldOwner</p>
<p>&nbsp;FETCH NEXT FROM curObject INTO @Name, @Owner</p>
<p>END</p>
<p>close curObject</p>
<p>deallocate curObject</p>
<p>GO</p>
<p>&nbsp;</p>
<p>10、SQL SERVER中直接循环写入数据</p>
<p>declare @i int</p>
<p>set @i=1</p>
<p>while @i&lt;30</p>
<p>begin</p>
<p>&nbsp;&nbsp; insert into test (userid) values(@i)</p>
<p>&nbsp;&nbsp; set @i=@i+1</p>
<p>end</p>
<p>小记存储过程中经常用到的本周，本月，本年函数 </p>
<p>Dateadd(wk,datediff(wk,0,getdate()),-1) </p>
<p>Dateadd(wk,datediff(wk,0,getdate()),6) </p>
<p>Dateadd(mm,datediff(mm,0,getdate()),0) </p>
<p>Dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0)) </p>
<p>Dateadd(yy,datediff(yy,0,getdate()),0) </p>
<p>Dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) </p>
<p>上面的SQL代码只是一个时间段 </p>
<p>Dateadd(wk,datediff(wk,0,getdate()),-1) </p>
<p>Dateadd(wk,datediff(wk,0,getdate()),6) </p>
<p>就是表示本周时间段. </p>
<p>下面的SQL的条件部分,就是查询时间段在本周范围内的: </p>
<p>Where Time BETWEEN Dateadd(wk,datediff(wk,0,getdate()),-1) AND Dateadd(wk,datediff(wk,0,getdate()),6) </p>
<p>而在存储过程中 </p>
<p>select @begintime = Dateadd(wk,datediff(wk,0,getdate()),-1) </p>
<p>select @endtime = Dateadd(wk,datediff(wk,0,getdate()),6)</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/surfingsoft_mda/archive/2009/11/15/4812371.aspx</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/surfingsoft_mda/archive/2009/11/15/4812371.aspx</p>
<img src ="http://www.blogjava.net/luluyanglu/aggbug/318724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2010-04-19 12:53 <a href="http://www.blogjava.net/luluyanglu/archive/2010/04/19/318724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用sql语句索引在线更新分区扩展信息删除重复行</title><link>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259646.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Fri, 13 Mar 2009 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259646.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/259646.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/259646.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/259646.html</trackback:ping><description><![CDATA[<p>常用sql语句索引在线更新分区扩展信息删除重复行<br />
1:索引在线更新：<br />
ALTER INDEX owner.tablename REBUILD ONLINE ； <br />
不能用带表空间信息。如：This one works fine within PL/SQL:<br />
ALTER INDEX LISADMIN.Isample REBUILD TABLESPACE INDX<br />
ALTER INDEX LISADMIN.Isample REBUILD ONLINE TABLESPACE INDX</p>
<p>2:删除重复行，保留最大值的行信息：<br />
delete from 'table'<br />
where (a,b,c) not in (select a,b,max(c) from 'table' group by a,b);</p>
<p>3：分区参数信息的更新<br />
CREATE TABLE WDZW1 ( <br />
WDBH NUMBER (10) NOT NULL, <br />
WDZW CLOB)<br />
TABLESPACE TESTSPACE PCTFREE 5 PCTUSED 90 INITRANS 1 MAXTRANS 255<br />
STORAGE ( INITIAL 512 NEXT 512 )<br />
PARTITION BY RANGE (WDBH)<br />
(<br />
PARTITION WDZW11 VALUES LESS THAN (100000)<br />
PCTFREE 5 PCTUSED 90 INITRANS 1 MAXTRANS 255<br />
STORAGE ( INITIAL 512k NEXT 512k PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 999),<br />
PARTITION WDZW21 VALUES LESS THAN (200000)<br />
PCTFREE 5 PCTUSED 90 INITRANS 1 MAXTRANS 255<br />
STORAGE ( INITIAL 512k NEXT 512k PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 999）<br />
）；<br />
CREATE UNIQUE INDEX PK_WDZW ON <br />
WDZW1(WDBH) <br />
TABLESPACE TESTSPACE PCTFREE 10 STORAGE(INITIAL 512 NEXT 512 PCTINCREASE 0 ) ；<br />
查看分区扩展信息：</p>
<p>SQL&gt; select INITIAL_EXTENT, NEXT_EXTENT ,MIN_EXTENTS ,MAX_EXTENTS from dba_segments <br />
2 where segment_type = 'LOB PARTITION';</p>
<p>INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS<br />
-------------- ----------- ----------- -----------<br />
20480 20480 1 249<br />
20480 20480 1 249</p>
<p>修改扩展分区：<br />
alter table wdzw1 modify lob(wdzw) (storage (MAXEXTENTS unlimited))</p>
<p>修改后结果信息：</p>
<p>SQL&gt; select INITIAL_EXTENT, NEXT_EXTENT ,MIN_EXTENTS ,MAX_EXTENTS from dba_segments <br />
2 where segment_type = 'LOB PARTITION';</p>
<p>INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS<br />
-------------- ----------- ----------- -----------<br />
20480 20480 1 2147483645<br />
20480 20480 1 2147483645</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/luluyanglu/aggbug/259646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2009-03-13 23:07 <a href="http://www.blogjava.net/luluyanglu/archive/2009/03/13/259646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLServer和Oracle</title><link>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259645.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Fri, 13 Mar 2009 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259645.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/259645.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259645.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/259645.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/259645.html</trackback:ping><description><![CDATA[<p>　SQLServer和Oracle是大家经常用到的数据库，在此感谢作者总结出这些常用函数以供大家参考。 </p>
<p>数学函数 <br />
　　1.绝对值 <br />
　　S:select abs(-1) value <br />
　　O:select abs(-1) value from dual </p>
<p>　　2.取整(大) <br />
　　S:select ceiling(-1.001) value <br />
　　O:select ceil(-1.001) value from dual </p>
<p>　　3.取整（小） <br />
　　S:select floor(-1.001) value <br />
　　O:select floor(-1.001) value from dual </p>
<p>　　4.取整（截取） <br />
　　S:select cast(-1.002 as int) value <br />
　　O:select trunc(-1.002) value from dual </p>
<p>　　5.四舍五入 <br />
　　S:select round(1.23456,4) value 1.23460 <br />
　　O:select round(1.23456,4) value from dual 1.2346 </p>
<p>　　6.e为底的幂 <br />
　　S:select Exp(1) value 2.7182818284590451 <br />
　　O:select Exp(1) value from dual 2.71828182 </p>
<p>　　7.取e为底的对数 <br />
　　S:select log(2.7182818284590451) value 1 <br />
　　O:select ln(2.7182818284590451) value from dual; 1 </p>
<p>　　8.取10为底对数 <br />
　　S:select log10(10) value 1 <br />
　　O:select log(10,10) value from dual; 1 </p>
<p>　　9.取平方 <br />
　　S:select SQUARE(4) value 16 <br />
　　O:select power(4,2) value from dual 16 </p>
<p>　　10.取平方根 <br />
　　S:select SQRT(4) value 2 <br />
　　O:select SQRT(4) value from dual 2 </p>
<p>　　11.求任意数为底的幂 <br />
　　S:select power(3,4) value 81 <br />
　　O:select power(3,4) value from dual 81 </p>
<p>　　12.取随机数 <br />
　　S:select rand() value <br />
　　O:select sys.dbms_random.value(0,1) value from dual; </p>
<p>　　13.取符号 <br />
　　S:select sign(-8) value -1 <br />
　　O:select sign(-8) value from dual -1 </p>
<p>　　14.圆周率 <br />
　　S:SELECT PI() value 3.1415926535897931 <br />
　　O:不知道 </p>
<p>　　15.sin,cos,tan 参数都以弧度为单位 <br />
　　例如：select sin(PI()/2) value 得到1（SQLServer） </p>
<p>　　16.Asin,Acos,Atan,Atan2 返回弧度 </p>
<p>　　17.弧度角度互换(SQLServer，Oracle不知道) <br />
　　DEGREES：弧度-〉角度 <br />
　　RADIANS：角度-〉弧度 </p>
<p>数值间比较 </p>
<p>　　18. 求集合最大值 <br />
　　S:select max(value) value from <br />
　　(select 1 value <br />
　　union <br />
　　select -2 value <br />
　　union <br />
　　select 4 value <br />
　　union <br />
　　select 3 value)a </p>
<p>　　O:select greatest(1,-2,4,3) value from dual </p>
<p>　　19. 求集合最小值 <br />
　　S:select min(value) value from <br />
　　(select 1 value <br />
　　union <br />
　　select -2 value <br />
　　union <br />
　　select 4 value <br />
　　union <br />
　　select 3 value)a </p>
<p>　　O:select least(1,-2,4,3) value from dual </p>
<p>　　20.如何处理null值(F2中的null以10代替) <br />
　　S:select F1,IsNull(F2,10) value from Tbl <br />
　　O:select F1,nvl(F2,10) value from Tbl </p>
<p>　　21.求字符序号 <br />
　　S:select ascii('a') value <br />
　　O:select ascii('a') value from dual </p>
<p>　　22.从序号求字符 <br />
　　S:select char(97) value <br />
　　O:select chr(97) value from dual </p>
<p>　　23.连接 <br />
　　S:select '11'+'22'+'33' value <br />
　　O:select CONCAT('11','22')　　33 value from dual </p>
<p>23.子串位置 --返回3 <br />
　　S:select CHARINDEX('s','sdsq',2) value <br />
　　O:select INSTR('sdsq','s',2) value from dual </p>
<p>　　23.模糊子串的位置 --返回2,参数去掉中间%则返回7 <br />
　　S:select patindex('%d%q%','sdsfasdqe') value <br />
　　O:oracle没发现，但是instr可以通过第四个参数控制出现次数 <br />
　　select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6 </p>
<p>　　24.求子串 <br />
　　S:select substring('abcd',2,2) value <br />
　　O:select substr('abcd',2,2) value from dual </p>
<p>　　25.子串代替 返回aijklmnef <br />
　　S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value <br />
　　O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual </p>
<p>　　26.子串全部替换 <br />
　　S:没发现 <br />
　　O:select Translate('fasdbfasegas','fa','我' ) value from dual </p>
<p>　　27.长度 <br />
　　S:len,datalength <br />
　　O:length </p>
<p>　　28.大小写转换 lower,upper </p>
<p>　　29.单词首字母大写 <br />
　　S:没发现 <br />
　　O:select INITCAP('abcd dsaf df') value from dual </p>
<p>　　30.左补空格（LPAD的第一个参数为空格则同space函数） <br />
　　S:select space(10)+'abcd' value <br />
　　O:select LPAD('abcd',14) value from dual </p>
<p>　　31.右补空格（RPAD的第一个参数为空格则同space函数） <br />
　　S:select 'abcd'+space(10) value <br />
　　O:select RPAD('abcd',14) value from dual </p>
<p>　　32.删除空格 <br />
　　S:ltrim,rtrim <br />
　　O:ltrim,rtrim,trim </p>
<p>　　33. 重复字符串 <br />
　　S:select REPLICATE('abcd',2) value <br />
　　O:没发现 </p>
<p>　　34.发音相似性比较(这两个单词返回值一样，发音相同) <br />
　　S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') <br />
　　O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual <br />
　　SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差 <br />
　　返回0-4，4为同音，1最高 </p>
<p>日期函数 <br />
　　35.系统时间 <br />
　　S:select getdate() value <br />
　　O:select sysdate value from dual </p>
<p>　　36.前后几日 <br />
　　直接与整数相加减 </p>
<p>　　37.求日期 <br />
　　S:select convert(char(10),getdate(),20) value <br />
　　O:select trunc(sysdate) value from dual <br />
　　select to_char(sysdate,'yyyy-mm-dd') value from dual </p>
<p>　　38.求时间 <br />
　　S:select convert(char(8),getdate(),108) value <br />
　　O:select to_char(sysdate,'hh24:mm:ss') value from dual </p>
<p>39.取日期时间的其他部分 <br />
　　S:DATEPART 和 DATENAME 函数 （第一个参数决定） <br />
　　O:to_char函数 第二个参数决定 </p>
<p>　　参数---------------------------------下表需要补充 <br />
　　year yy, yyyy <br />
　　quarter qq, q (季度) <br />
　　month mm, m (m O无效) <br />
　　dayofyear dy, y (O表星期) <br />
　　day dd, d (d O无效) <br />
　　week wk, ww (wk O无效) <br />
　　weekday dw (O不清楚) <br />
　　Hour hh,hh12,hh24 (hh12,hh24 S无效) <br />
　　minute mi, n (n O无效) <br />
　　second ss, s (s O无效) <br />
　　millisecond ms (O无效) <br />
　　---------------------------------------------- </p>
<p>　　40.当月最后一天 <br />
　　S:不知道 <br />
　　O:select LAST_DAY(sysdate) value from dual </p>
<p>　　41.本星期的某一天（比如星期日） <br />
　　S:不知道 <br />
　　O:SELECT Next_day(sysdate,7) vaule FROM DUAL; </p>
<p>　　42.字符串转时间 <br />
　　S:可以直接转或者select cast('2004-09-08'as datetime) value <br />
　　O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL; </p>
<p>　　43.求两日期某一部分的差（比如秒） <br />
　　S:select datediff(ss,getdate(),getdate()+12.3) value <br />
　　O:直接用两个日期相减（比如d1-d2=12.3） <br />
　　SELECT (d1-d2)*24*60*60 vaule FROM DUAL; </p>
<p>　　44.根据差值求新的日期（比如分钟） <br />
　　S:select dateadd(mi,8,getdate()) value <br />
　　O:SELECT sysdate+8/60/24 vaule FROM DUAL; </p>
<p>　　45.求不同时区时间 <br />
　　S:不知道 <br />
　　O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL; </p>
<p>　　-----时区参数,北京在东8区应该是Ydt------- <br />
　　AST ADT 大西洋标准时间 <br />
　　BST BDT 白令海标准时间 <br />
　　CST CDT 中部标准时间 <br />
　　EST EDT 东部标准时间 <br />
　　GMT 格林尼治标准时间 <br />
　　HST HDT 阿拉斯加?夏威夷标准时间 <br />
　　MST MDT 山区标准时间 <br />
　　NST 纽芬兰标准时间 <br />
　　PST PDT 太平洋标准时间 <br />
　　YST YDT YUKON标准时间 </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/luluyanglu/aggbug/259645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2009-03-13 23:04 <a href="http://www.blogjava.net/luluyanglu/archive/2009/03/13/259645.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> oracle_sql 函数</title><link>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259643.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Fri, 13 Mar 2009 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259643.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/259643.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2009/03/13/259643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/259643.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/259643.html</trackback:ping><description><![CDATA[<p>&nbsp;oracle_sql 函数&nbsp; <br />
说明：在括号中注明（数值）的为数值型函数；注明为（字符）的为字符函数；注明为日期的为日期型函数；注明为（转换）的为转换型函数；注明是（聚组）的为聚组型函数；不注明的为其他函数。&nbsp; <br />
&nbsp; <br />
函数名： 说明 <br />
abs(x)（数值） 返回x的绝对值 <br />
add_months（x，y）（日期） 返回值为日期x加上y个月 <br />
ascii（x）（字符） 返回字符x的十进字表示 <br />
avg([distinct|all]x]（聚组） 返回x列的平均值 <br />
ceil（x）（字符） 返回大于或等于x的最小整数 <br />
chartorowid（x）（转换） 将字符串x转换成rowid类型 <br />
chr（x）（字符） 返回对应于数x的字符集中的字符 <br />
concat（x，y）（字符） 返回串x和串y接结果 <br />
convert（x，y[,z]）（日期） 用字符集y来转换字符串x，z为原来的字符集 <br />
cos（x）（数值） 返回x的余弦 <br />
cosh（x）（数值） 返回x的双曲余弦 <br />
count（*|distinct|all]x）（聚组） 返回查询所得到的行数 <br />
dump（w,[x[,y[,z]]]x） 返回一个字符串，含有w的数据类型码，字节为单位的长度以及内部表示形式 <br />
exp（x）（数值） 返回e的x次幂 <br />
floor（x）（数值） 返回小于或等于x的最大整数 <br />
glb([distinct|all]x)（聚组） 返回标签x的最大下限 <br />
greatest（x[,y],[,..]） 返回列表中的最大值 <br />
greatest_lb(x[,y],[,&#8230;]) 返回标签列表中的最大值 <br />
hextoraw（x）（字符） 将含有16进制数据的字符串转换成二进制数据 <br />
initcap（x）（字符） 返回串x首字符大写，其余字符小写的结果 <br />
instr（w,x[,y[,z]]）（字符） 返回串x在串w中的出现位置 <br />
instrb(w,x[,y[,z]])（字符） 同上，只在多字节字符时有用 <br />
last_day（x）（日期） 返回x指定的那个月的最后一天 <br />
least（x[,y][,&#8230;]） 返回列表中的最小值 <br />
least_ub(x[,y][,&#8230;]) 返回标签列表中的最小值 <br />
length（x）（字符） 返回串x的长度 <br />
lengthb（x）（字符） 返回串x的字节长度 <br />
ln（x）（数值） 返回x的自然对数 <br />
log（x，y）（数值） 返回x为底的y的对数 <br />
lower（x）（字符） 返回串x小写字母结果 <br />
lpad（x，y[,z]）（字符） 返回串x左边填充z至长度为y的结果 <br />
ltrim（x[,y]）（字符） 返回串x左边截去字符集为y后的结果 <br />
lub（[distinct|all]x）（聚组） 返回标签x的最小上限 <br />
max([distinct|all]x)（聚组） 返回x列的最大列值 <br />
min([distinct|all]x)（聚组） 返回x列的最小列值 <br />
mod（x,y）（数值） 返回x除以y的余数 <br />
months_between（x,y）（日期） 返回x和y之间的月数 <br />
new_time（x,y,z）（日期） 返回时间区域y中的时间x在z区域的对应时间 <br />
next_day（x,y）（日期） 返回日期x之后第一个名为y的那天的日期 <br />
nls_initcat（字符） 基本同initcap，只是考虑到语言 <br />
nls_lover(x[,y])（字符） 基本同lower，只是考虑到语言 <br />
nls_upper（字符） 基本同upper，只是考虑到语言 <br />
nvl（x,y） x为null返回y，否则返回x <br />
power（x,y）（数值） 返回x的y次幂 <br />
rawtohex（x）（转换） 将二进制数据转换成16进制数字的字符串 <br />
replace(x,y[,z])（字符） 将x中出现y的地方替换成z <br />
round（x[,y]）（数值） 返回将x四舍五入成y位小数的值 <br />
round（x[,y]）（字符） 舍入到离日期x最近的那个由y指定的日期单位的第一天 <br />
rowidtochar（x）（转换） 将rowid类型转换成字符型字符串 <br />
rpad（x,y[,z]）（字符） 返回串x右边填充z至长度为y的结果 <br />
rtrim(x,y[,z])（字符） 返回串x右边截去字符集为y后的结果 <br />
sign（x）（数值） x为正数、负数、0时分别为1、－1、0 <br />
sin（x）（数值） 返回x的正弦值 <br />
sinh（x）（数值） 返回x的正弦的16进制 <br />
soundex（x）（字符） 返回x语言发音描述 <br />
sqrt（x）（数值） 返回x的平方根 <br />
stddev([distinct|all]x)（聚组） 返回数值列x的标准误差 <br />
substr(x,y[,z])（聚组） 从x中的第y个位置开始取z个字符的子串 <br />
sum([distinct|all]x)（聚组） 返回数值列x的合计 <br />
sysdate（日期） 返回当前的日期和时间 <br />
tan（x）（数值） 返回x的正切 <br />
tanh（x）（数值） 返回x的正切的16进制 <br />
to_char(x[,y])（转换） 将一个日期或数字转换成一个字符串 <br />
to_date(x[,y])（转换） 将一个字符串转换成日期 <br />
to_label(x[,y])（转换） 将一个字符串转换为MLSLABEL类型的值 <br />
to_multi_bye(x)（转换） 将单字节字符串转换为多字节字符串 <br />
to_number(x,y[,z])（转换） 将一个字符串转换成数值 <br />
to_single_byte(x)（转换） 将多字节字符串转换为单字节字符串 <br />
translate(x,y[,z])（字符） 将x中y字符集翻译成z集中相应位置的字符 <br />
trunc(x[,y])（数值） 返回x截为y位小数的结果值 <br />
trunc(x[,y])（日期） 将x舍到由y指定的日期单位的第一天，结果中带有时间部分 <br />
uid 返回唯一标识当前用户的那个整数 <br />
upper(x)（字符） 返回x的大写串 <br />
user 返回当前用户的数据库用户名 <br />
userenv(x) 返回关于当前数据库会话的环境信息 <br />
variance([distinct|all]x)（聚组） 返回数值列的方差 </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/luluyanglu/aggbug/259643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2009-03-13 23:00 <a href="http://www.blogjava.net/luluyanglu/archive/2009/03/13/259643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>