﻿<?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>IT博客-玄铁剑-文章分类-Oracle相关</title><link>http://www.cnitblog.com/MartinYao/category/4541.html</link><description>成功的途径：抄，创造，研究，发明...</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 13:52:41 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 13:52:41 GMT</pubDate><ttl>60</ttl><item><title>Oracle表空间和用户創建</title><link>http://www.cnitblog.com/MartinYao/articles/47015.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Tue, 22 Jul 2008 09:40:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/47015.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/47015.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/47015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/47015.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/47015.html</trackback:ping><description><![CDATA[<p><span>以系统管理员身份登陆数据库</span><span><o /></span></p>
<p><span>关闭数据库</span><span><o /></span></p>
<p><span>启动数据库到</span><span>mount</span><span>状态</span><span><o /></span></p>
<p><span>更改归档方式</span><span><o /></span></p>
<p><span>查看归档状态</span><span><o /></span></p>
<p><span>修改归档目录</span><span><o /></span></p>
<p><span>修改归档启动方式</span><span><o /></span></p>
<p><span>关闭数据库</span><span><o /></span></p>
<p><span>重新启动数据库</span><span><o /></span></p>
<p><span>查看归档状态</span><span><o /></span></p>
<p><span>归档联机日志</span><span><o /></span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=590>
            <p><span>SQL*Plus: Release 9.2.0.1.0 - Production on Sun Mar 18 11:58:12 2007<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Copyright (c) 1982, 2002, Oracle Corporation.<span> </span>All rights reserved.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; connect sys/change_on_install as sysdba<o /></span></p>
            <p><span>Connected.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; shutdown immediate<o /></span></p>
            <p><span>Database closed.<o /></span></p>
            <p><span>Database dismounted.<o /></span></p>
            <p><span>ORACLE instance shut down.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; startup mount<o /></span></p>
            <p><span>ORACLE instance started.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Total System Global Area<span> </span>105978600 bytes<o /></span></p>
            <p><span>Fixed Size<span> </span>453352 bytes<o /></span></p>
            <p><span>Variable Size<span> </span>79691776 bytes<o /></span></p>
            <p><span>Database Buffers<span> </span>25165824 bytes<o /></span></p>
            <p><span>Redo Buffers 667648 bytes<o /></span></p>
            <p><span>Database mounted.<o /></span></p>
            <p><span>SQL&gt; alter database archivelog;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Database altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; archive log list;<o /></span></p>
            <p><span>Database log mode<span> </span>No Archive Mode<o /></span></p>
            <p><span>Automatic archival<span> </span>Disabled<o /></span></p>
            <p><span>Archive destination<span> </span>C:/oracle/ora92/RDBMS<o /></span></p>
            <p><span>Oldest online log sequence<span> </span>22<o /></span></p>
            <p><span>Current log sequence<span> </span>24<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter system set log_archive_dest='c:/Oracle/ora92/database/archive';<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>System altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter system set log_archive_start=true scope=spfile;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>System altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; shutdown immediate<o /></span></p>
            <p><span>Database closed.<o /></span></p>
            <p><span>Database dismounted.<o /></span></p>
            <p><span>ORACLE instance shut down.<o /></span></p>
            <p><span>SQL&gt; startup<o /></span></p>
            <p><span>ORACLE instance started.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Total System Global Area<span> </span>105978600 bytes<o /></span></p>
            <p><span>Fixed Size<span> </span>453352 bytes<o /></span></p>
            <p><span>Variable Size<span> </span>79691776 bytes<o /></span></p>
            <p><span>Database Buffers<span> </span>25165824 bytes<o /></span></p>
            <p><span>Redo Buffers<span> </span>667648 bytes<o /></span></p>
            <p><span>Database mounted.<o /></span></p>
            <p><span>Database opened.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; archive log list;<o /></span></p>
            <p><span>Database log mode<span> </span>Archive Mode<o /></span></p>
            <p><span>Automatic archival<span> </span>Disabled<o /></span></p>
            <p><span>Archive destination<span> </span>c:/Oracle/ora92/database/archive<o /></span></p>
            <p><span>Oldest online log sequence<span> </span>22<o /></span></p>
            <p><span>Next log sequence to archive<span> </span>24<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter system switch logfile;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>System altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter system switch logfile;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>System altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter system switch logfile;<o /></span></p>
            </td>
        </tr>
    </tbody>
</table>
<p><span><o></o></span></p>
<p><span><o></o></span></p>
<p><span>创建用户表空间</span><span><o /></span></p>
<p><span>增加用户表空间的数据文件</span><span><o /></span></p>
<p><span>创建用户</span><span><o /></span></p>
<p><span>为用户分配缺省表空间</span><span><o /></span></p>
<p><span>为用户分配临时表空间</span><span><o /></span></p>
<p><span>为用户分配权限</span><span><o /></span></p>
<p><span>以用户身份登陆</span><span><o /></span></p>
<p><span>以用户身份创建数据表</span><span><o /></span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=590>
            <p><span>SQL&gt; CREATE TABLESPACE mytablespace<o /></span></p>
            <p><span>2<span> </span>DATAFILE 'c:/oracle/oradata/wbq/mydatablespace01.dbf' SIZE 50M<o /></span></p>
            <p><span>3<span> </span>AUTOEXTEND ON NEXT 10M MAXSIZE 200M,<o /></span></p>
            <p><span>4<span> </span>'c:/oracle/oradata/wbq/mydatablespace02.dbf' SIZE 50M<o /></span></p>
            <p><span>5<span> </span>AUTOEXTEND ON NEXT 10M MAXSIZE 200M<o /></span></p>
            <p><span>6<span> </span>EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Tablespace created.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; ALTER TABLESPACE mytablespace ADD<o /></span></p>
            <p><span>2<span> </span>DATAFILE 'c:/oracle/oradata/wbq/mydatablespace03.dbf' SIZE 50M<o /></span></p>
            <p><span>3<span> </span>AUTOEXTEND ON NEXT 10M MAXSIZE 200M;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Tablespace altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; CREATE USER wbq IDENTIFIED BY wbq;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>User created.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter user wbq identified by wbq<o /></span></p>
            <p><span>2<span> </span>default tablespace mytablespace;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>User altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; alter user wbq identified by wbq<o /></span></p>
            <p><span>2<span> </span>temporary tablespace temp;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>User altered.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; grant dba to wbq;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Grant succeeded.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; grant connect to wbq;<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Grant succeeded.<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>SQL&gt; connect wbq/wbq ;<o /></span></p>
            <p><span>Error accessing PRODUCT_USER_PROFILE<o /></span></p>
            <p><span>Warning:<span> </span>Product user profile information not loaded!<o /></span></p>
            <p><span>You may need to run PUPBLD.SQL as SYSTEM<o /></span></p>
            <p><span>Connected.<o /></span></p>
            <p><span>SQL&gt; create table test<o /></span></p>
            <p><span>2<span> </span>(<o /></span></p>
            <p><span>3<span> </span>id int,<o /></span></p>
            <p><span>4<span> </span>name varchar2(20)<o /></span></p>
            <p><span>5<span> </span>);<o /></span></p>
            <p><span><o></o></span></p>
            <p><span>Table created.<o /></span></p>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/47015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2008-07-22 17:40 <a href="http://www.cnitblog.com/MartinYao/articles/47015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>顯示亂碼問題</title><link>http://www.cnitblog.com/MartinYao/articles/28626.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sun, 17 Jun 2007 05:24:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/28626.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/28626.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/28626.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/28626.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/28626.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 字符集是ORACLE为适应不同语言文字显示而设定的。用于汉字显示的字符集主要有ZHS16CGB231280、ZHS16GBK、US7ASCII和UTF－8等。字符集同时存在于服务器端和客户端。服务器端字符集是在安装ORACLE时指定的，字符集登记信息存储在ORACLE数据库字典的V$NLS_PARAMETERS表中；而客户端字符集是在系统注册表（WINDOWS系统）或在用户的环境变量（UNIX系统）中设定的。<br>&nbsp;&nbsp;&nbsp;&nbsp; 字符集的构成与设定<br>&nbsp;&nbsp;&nbsp; 字符集的构成与设定方式分为客户端与服务器端两种：<br>&nbsp;&nbsp;&nbsp; (1)客户端字符集的构成与设定。客户端的字符集是由当前用户的环境变量NLS_LANG设定的。环境变量NLS_LANG的构成：<br>NLS_LANG=language_territory.charset&nbsp;&nbsp;&nbsp;&nbsp; <br>其中，<br>language&nbsp; 指定服务器消息的语言<br>territory&nbsp;&nbsp; 指定服务器的日期和数字格式<br>charset&nbsp;&nbsp;&nbsp; 指定字符集<br>三个成分可以任意组合，例如：<br>AMERICAN_AMERICA.US7SCII<br>SIMPLIFIED CHINESE_CHINA.ZHS16GBK<br>AMERICAN_AMERICA. ZHS16GBK<br>&nbsp;&nbsp;&nbsp; 客户端字符集的设定方法针对不同操作系统设定方法稍有不同：WINDOWS系统是在注册表项：HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG中设定；UNIX系统是在当前用户的环境变量中设定，如在当前用户的profile文件中增加一行如下代码：<br>NLS_LANG=SIMPLIFIED Chinese_CHINA.ZHS16GBK；export NLS_LANG<br>&nbsp;&nbsp;&nbsp; (2)服务端字符集的构成与设定。服务端字符集的构成体现在数据字典表V$NLS_PARAMETERS的NLS_LANGUAGE、NLS_TERRITORY、NLS_CHARACTERSET三项取值上，其中NLS_CHARACTERSET的取值就是具体的数据库字符集。如利用查询语句SQL&gt;SELECT * FROM V$NLS_PARAMETERS;<br>可得到如下结果：<br>PARAMETER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br>------------------------------------------------------------<br>NLS_LANGUAGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIMPLIFIED CHINESE<br>NLS_TERRITORY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHINA<br>&#8230;&#8230;<br>NLS_CHARACTERSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZHS16GBK<br>&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp; 即当前数据库使用的字符集是ZHS16GBK。<br>&nbsp;&nbsp;&nbsp; 数据库服务端的字符集是在创建数据时设定的。但可通过如下方法对已设定的字符集进行修改：<br>&nbsp;&nbsp;&nbsp; 方法一：重建数据库。建立数据库时将数据库的字符集设定为所需字符集。<br>&nbsp;&nbsp;&nbsp; 方法二：修改SYS.PROPS$表。即用SYS用户登陆ORACLE后，利用下面语句修改相应的字符集并提交：<br>SQL&gt;UPDATE PROPS$ SET VALUE$=&#8217;ZHS16GBK&#8216;<br>WHERE NAME=&#8217;NLS_CHARACTERSET&#8217;;<br>SQL&gt;COMMIT;<br>&nbsp;&nbsp;&nbsp; 通过此种方法来更改数据库字符集，只对更改后的数据有效，即数据库中原来的数据仍以原字符集被存储。<br>&nbsp;&nbsp;&nbsp; 另外，有的还利用CREATE DATABASE CHARACTER SET ZHS16GBK命令暂时的修改字符集，当重启数据库后，数据库字符集将恢复原来的字符集。<br>4&nbsp; 常见的汉字乱码问题及解决方案<br>&nbsp;&nbsp;&nbsp; 要在客户端正确显示ORACLE数据库中的汉字信息，首先必须使客户端的字符集与服务器端的字符集一致；其次是加载到ORACLE数据库的数据字符集必须与服务器字符集一致。据此，汉字显示乱码的问题大致可以分为以下几种情况：<br>&nbsp;&nbsp;&nbsp; (1)客户端字符集与服务器端字符集不同，服务器端字符集与加载数据字符集一致。这种情况是最常见的，只要把客户端的字符集设置正确即可。具体解决方案：<br>&nbsp;&nbsp;&nbsp;&nbsp; 第一步：查询V$NLS_PARAMETERS得到服务端的字符集：<br>SQL&gt;SELECT * FROM V$NLS_PARAMETERS;<br>PARAMETER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br>-----------------------------------------------------<br>NLS_LANGUAGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIMPLIFIED CHINESE<br>NLS_TERRITORY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHINA<br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br>NLS_CHARACTERSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZHS16GBK<br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp; 第二步：根据服务端的字符集设定客户端的字符集，设定方法参见客户端的字符集的设定方式。以UNIX系统为例，可在当前用户的profile文件中增加如下两行：<br>&nbsp;&nbsp;&nbsp; NLS_LANG=SIMPLIFIED Chinese_CHINA.ZHS16GBK<br>&nbsp;&nbsp;&nbsp; export NLS_LANG<br>&nbsp;&nbsp;&nbsp; (2)客户端字符集与服务器端字符集相同，服务器端字符集与加载数据字符集不一致。这种情况一般发生在ORACLE版本升级或重新安装数据库时选择了与原来数据库不同的字符集，而恢复加载的备份数据仍是按原字符集卸出的场合。另一种情况是加载从其它使用不同字符集的ORACLE数据库卸出的数据。在这两种情况中，不管客户端字符集与服务器端字符集是否一致都无法正确显示汉字。具体解决方案：<br>&nbsp;&nbsp;&nbsp; 方案一：按服务端字符集的修改方法修改服务端字符集与加载数据字符集一致，然后导入数据。<br>&nbsp;&nbsp;&nbsp; 方案二：利用数据格式转储，避开字符集带来的问题。即先将加载数据倒入到与其字符集一致的数据库中，然后再将数据要么按文本格式导出（数据量较小的情况下），要么通过第三方工具（如POWER BUILDER，ACCESS，FOXPRO等）倒出数据，最后将倒出的数据导入到目标数据库中。<br>&nbsp;&nbsp;&nbsp; (3)客户端字符集与服务器端字符集不同，服务端字符集与输入数据字符集不同。这种情况是在客户端字符集与服务器端字符集不一致时，从客户端输入了汉字信息。输入的这些信息即便是把客户端字符集更改正确，也无法显示汉字。解决方案：修改客户端字符集与服务端字符集一致后，重新输入数据。<br>5&nbsp; 结束语<br>&nbsp;&nbsp;&nbsp; 根据ORACLE官方文档的说明，一旦数据库创建后，数据库的字符集是不能改变的。因此，提前考虑自己的数据库将选用哪一种字符集是十分重要的。数据库字符集选择的一般规则是将数据库字符集设定为操作系统本地字符集的一个超集，同时数据库字符集也应该是所有客户字符集的超集。如同样是中文环境，在选择ZHS16CGB231280还是ZHS16GBK时，我们更多的情况是选择ZHS16GBK，因为它包含了ZHS16CGB231280字符集。</p>
<p>HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1<br>&nbsp;&nbsp; NLS_LANG = AMERICAN_AMERICA.WE8DEC<br></p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/28626.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-06-17 13:24 <a href="http://www.cnitblog.com/MartinYao/articles/28626.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle和Sqlserver函數比較</title><link>http://www.cnitblog.com/MartinYao/articles/28623.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sun, 17 Jun 2007 05:21:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/28623.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/28623.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/28623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/28623.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/28623.html</trackback:ping><description><![CDATA[<p>SQL和Oracle函数对比 <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标准时间 <br></p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/28623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-06-17 13:21 <a href="http://www.cnitblog.com/MartinYao/articles/28623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>