﻿<?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-&lt;font color="red"&gt;JRen&lt;/font&gt;&lt;font color="lightgreen"&gt;大鹏一曰同风起，扶摇直上九万里&lt;/font&gt;-随笔分类-Oracle</title><link>http://www.blogjava.net/liaojiyong/category/11451.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 10 Nov 2007 09:39:31 GMT</lastBuildDate><pubDate>Sat, 10 Nov 2007 09:39:31 GMT</pubDate><ttl>60</ttl><item><title>Installing Oracle 10g on RHEL AS 3 Step-by-Step(转)</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/10/159486.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 09 Nov 2007 16:56:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/10/159486.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/159486.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/10/159486.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/159486.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/159486.html</trackback:ping><description><![CDATA[<div class="asset-body">
<p>不久前,Oracle(甲骨文)公司在美国加州的总部宣布, Oracle 10g 数据库 与 Oracle <acronym title="Real Application Cluster &#13;">RAC</acronym> 在 TPC-H 基准测试中创造了新的世界纪录.这是个令人震惊的消息.因为这个测试是在 Linux ( Red Hat Enterprise Linux Advanced Server 3) 的平台上进行的. 这充分显示了 Oracle 在低成本 Linux 集群服务器上高效管理大规模数据仓库的能力, 也表明 Linux 在性能价格比上显而易见的优势,标志着Linux在大规模企业应用上已经成熟. </p>
<p>相信很多朋友已经对10g跃跃欲试了,现在从这里让我们开始10g之旅.</p>
<p>本文描述了在Red Hat Enterprise Linux Advanced Server 3 (<acronym title="Red Hat Enterprise Linux&#13;">RHEL</acronym> 3)上安装Oracle 10g 必要的步骤和相关知识. 本文假定你的Linux 操作系统已经安装完毕,并且您应该具有一定的 Unix 操作系统背景知识.</p>
</div>
<div class="asset-more" id="more">
<h2>配置RedHat AS 3</h2>
<p>操作系统版本：</p>
<blockquote>Red Hat Enterprise Linux AS release 3 (Taroon)<br />
Kernel 2.4.21-4.EL on an i686 </blockquote>
<p>按照常规来安装操作系统,记得要安装开发工具(gcc等必要工具). </p>
<h2>必要的硬件信息检查</h2>
<blockquote>
<table>
    <tbody>
        <tr>
            <td><strong>检查内容</strong></td>
            <td><strong>最小值</strong></td>
            <td><strong>检查命令参考</strong></td>
        </tr>
        <tr>
            <td>物理内存</td>
            <td>512M</td>
            <td># grep MemTotal /proc/meminfo </td>
        </tr>
        <tr>
            <td>交换空间</td>
            <td>1.0 GB或者2倍内存大小</td>
            <td># grep SwapTotal /proc/meminfo </td>
        </tr>
        <tr>
            <td>/tmp 空间</td>
            <td>400 <acronym title="Megabyte&#13;">MB</acronym> </td>
            <td># df -k /tmp </td>
        </tr>
        <tr>
            <td>软件所需空间</td>
            <td>2.5 <acronym title="Gigabyte&#13;">GB</acronym> </td>
            <td># df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) </td>
        </tr>
        <tr>
            <td>数据库文件</td>
            <td>1.2 <acronym title="Gigabyte&#13;">GB</acronym> </td>
            <td># df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) </td>
        </tr>
    </tbody>
</table>
</blockquote>
<p>检查完如上各项之后, 应该修改核心参数.执行如下命令:</p>
<blockquote>
<pre>#vi /etc/sysctl.conf
</pre>
</blockquote>
<p>#注释:<br />
#表示使用root用户操作,$表示使用oracle 用户进行操作.提示符后面的蓝色部分表示需要输入的命令，以下同． </p>
在该文件末尾加入如下内容:
<blockquote>
<pre>kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
</pre>
</blockquote>编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效.
<p>注:上面kernel.shmmax/kernel.sem等是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动. </p>
<p>关于这些核心参数的说明在Oracle的 <a href="http://download-west.oracle.com/docs/html/A96167_01/toc.htm">Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems</a> 中有很详细的说明.( http://download-west.oracle.com/docs/html/A96167_01/toc.htm ) </p>
然后,应该检查一下上面的操作是否正确:
<blockquote>
<pre># /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
</pre>
</blockquote>
<h2>为Oracle用户设定Shell的限制</h2>
<p>一般来说，出于性能上的考虑,还需要需要进行如下的设定，以便改进Oracle用户的有关 nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)</p>
<blockquote>
<pre># vi /etc/security/limits.conf
# 添加如下的行
*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536
</pre>
</blockquote>
<p>添加如下的行到/etc/pam.d/login 文件：</p>
<blockquote>
<pre>session    required     /lib/security/pam_limits.so
</pre>
</blockquote>
<p>编辑 /etc/profile 文件,添加如下部分：</p>
<blockquote>
<pre>if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi</pre>
</blockquote>
<p>之后，执行$ unlimit 验证一下.</p>
<h2>检查并安装相关补丁</h2>
<p>在这个版本的RHEL上安装Oracle,必须要有几个软件包. 确认以下 rpm包都已经安装: </p>
<blockquote>
<pre>make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
<p># rpm -qa | grep compat <br />
</p>
</pre>
</blockquote>
<p>&nbsp;</p>
<p># 在我的机器上输出如下:</p>
<blockquote>
<pre>compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
# rpm -qa | grep openmotif
openmotif-devel-2.2.2-16
openmotif-2.2.2-16
# rpm -qa | grep setarch
setarch-1.3-1
</pre>
</blockquote>
<p>上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包:</p>
<blockquote>
<pre># rpm -ivh compat.....rpm
</pre>
</blockquote>
<p>要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误. 此外，最好验证一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高):</p>
<blockquote>
<pre>#gcc -v
#rpm -q glibc
</pre>
</blockquote>
<h2>创建用户和相关的组</h2>
<blockquote>
<pre># /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle　
</pre>
</blockquote>
<p>如果只是测试目的的话，不创建 oinstall 组也没什么. 不过还是规范一点比较好.如果 oracle 用户和 dba 组等已经存在，作适当的调整即可. </p>
<h2>检查并调整环境变量 </h2>
<p>登录为oracle用户</p>
<blockquote>
<pre># su - oracle
$ cd
$ vi .bash_profile
</pre>
</blockquote>
<p>#添加如下内容,你的具体值应该不会和这个完全相同.</p>
<blockquote>
<pre>export ORACLE_BASE=/u/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORACLE_SID=TEST
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
</pre>
</blockquote>
<p>然后执行</p>
<blockquote>
<pre>$ source .bash_profile
</pre>
</blockquote>
<p>使环境变量生效. /u/app/oracle 等目录应该建立好并做合适的授权. </p>
<h2>开始安装10g</h2>
<p>mount你的安装盘.(我一般都是把文件拷贝到系统中一个具体的位置,比如/u/install ) .执行:</p>
<blockquote>
<pre>$ sh /u/install/runInstaller
</pre>
</blockquote>
<p>如果不能出现安装画面，查看本文后面的FAQ。</p>
<p>非常值得称道的是,10g的安装相比以前的多了一个 Checking operating system certification 的步骤。特别实用。安装文件会自动检测所需的条件。如果有不符合的地方，安装程序会报告给你.并会给出具体原因。大大减少了出错的可能.下面是检查成功输出的内容 : </p>
<p>
<blockquote>
<pre>Checking operating system certification
Expected result: One of redhat-2.1,redhat-3,UnitedLinux-1.0
Actual Result: redhat-3
Check complete. The overall result of this check is: Passed
=======================================================================
Checking kernel parameters
Checking for VERSION=2.4.9.25; found VERSION=2.4.21. Passed
Checking for shmall=2097152; found shmall=2097152. Passed
Checking for shmseg=10; found shmseg=4096. Passed
Checking for semmsl=250; found semmsl=250. Passed
Checking for semmni=128; found semmni=128. Passed
Checking for filemax=65536; found filemax=65536. Passed
Checking for shmmni=4096; found shmmni=4096. Passed
Checking for semmns=32000; found semmns=32000. Passed
Checking for semopm=100; found semopm=100.Passed
Checking for shmmin=1; found shmmin=1. Passed
Checking for shmmax=2147483648; found shmmax=2147483648. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended operating system packages
Checking for make-3.79; found make-3.79.1-17. Passed
Checking for binutils-2.11.90.0.8-12; found binutils-2.14.90.0.4-26. Passed
Checking for gcc-2.96; found gcc-3.2.3-20. Passed
Checking for openmotif-2.1.30-11; found openmotif-2.2.2-16. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended glibc version
Expected result: 2.2.4.31.7
Actual Result: 2.3.2.95.3
Check complete. The overall result of this check is: Passed
=======================================================================
Validating ORACLE_BASE location (if set)
Check complete. The overall result of this check is: Passed
=======================================================================
</pre>
</blockquote>
<p>&nbsp;</p>
<p>其他的步骤比较清晰，不再赘述.</p>
<p>最后系统会提示你运行 root.sh 文件.按照提示做即可.</p>
<h2><acronym title="Frequently Asked Questions&#13;">FAQ</acronym> (在Linux平台安装Oracle比较常见的问题) </h2>
<blockquote>
<h2>1. 不能启动安装界面</h2>
<p>运行runInstaller提示信息类似如下:</p>
<blockquote>
<pre>xlib:connection to "localhost:0.0" refused by server
xlib:client is not authorized to connect to server <br />
Exception in thread "main" java.lang.InternalError:
can't connect to x11 window server using "localhost:0.0" at .......
</pre>
</blockquote>
<p>解决办法: 设定你的DISPLAY环境参数.</p>
<blockquote>
<pre># export DISPLAY= your_IPaddress :0.0</pre>
</blockquote>
<p>把your_IPaddress换成你的IP.或者用root简单的执行一下# xhost + (要注意这样会有安全上的隐患).</p>
<h2>2.安装界面显示很多"口口"样子的乱码</h2>
<p>解决办法:查看locale输出</p>
<blockquote>
<pre># locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
</pre>
</blockquote>
<p>执行#export LC_CTYPE=en_US.UTF-8 然后重新调用安装程序. </p>
<h2>3. 用IE登录Linux服务器上的em出现乱码</h2>
<p>在Linux(Unix) 环境下成功安装了Oracle 10g,从windows下用IE浏览器登录 10g 的em, 按钮是"口口"这样的方框. </p>
<p>解决办法: 参考:
<p><a href="http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm">http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm</a> </p>
<p>&nbsp;</p>
<h2>4.创建数据库的时候出现ORA-03113的错误</h2>
<p>解决办法: 查看核心参数是否调整正确.参考:</p>
<blockquote>http://www.dbanotes.net/Oracle/ORA-03113.htm</blockquote>
<p><br />
<h2>5. RedHat 9 / FC1等系统10g不支持如何安装?</h2>
<br />
<p>解决办法：在10g不支持的Linux发行版上安装10g的解决方法</p>
<p>&nbsp;</p>
<p>1). 运行runInstaller -ignoreSysPrereqs，这样会跳过检查. </p>
<p>2). 摘自 <a href="http://www.puschitz.com/">www.puschitz.com</a> 修改/etc/redhat-release文件：</p>
<blockquote>
<pre>#su - root
#cp /etc/redhat-release /etc/redhat-release.backup
#cat &gt; /etc/redhat-release &lt;&lt;   EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
</pre>
</blockquote>
<p>安装完毕，执行如下操作： </p>
<blockquote>
<pre>#su - root
#cp /etc/redhat-release.backup /etc/redhat-release
</pre>
</blockquote>
<p>3). <a href="http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm">http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm </a></p>
<p>同样的思路，我们可以修改Oracle 的install/oraparam.ini文件达到目的. </p>
<h2>6.如何关掉那些 ocssd.bin 进程？</h2>
<p>解决办法:编辑/etc/inittab文件(做好备份),注释掉这一行:</p>
<blockquote>
<pre>h1:3:respawn:/etc/init.d/init.cssd run &gt;/dev/null 2&gt;................
</pre>
</blockquote></blockquote>
<h2>参考信息</h2>
<p><a href="http://www.puschitz.com/InstallingOracle10g.shtml">Werner Puschitz 的 10g 安装指南</a> - http://www.puschitz.com/InstallingOracle10g.shtml<br />
Werner Puschitz 的站点的文章很翔实,如果您遇到了本文没有说清的问题,可以去看看那里.本文借鉴了该站点不少内容． </p>
<p><a href="http://www.google.com/">http://www.google.com</a> - http://www.google.com <br />
关于核心参数等信息一定要用Google查找． </p>
<p><a href="http://download-west.oracle.com/docs/html/B10813_01/toc.htm">Oracle Database Quick Installation Guide 10g Release 1 (10.1) for Linux x86 </a><br />
http://download-west.oracle.com/docs/html/B10813_01/toc.htm </p>
<p><a href="http://download-west.oracle.com/docs/html/B10811_02/toc.htm">Oracle Database Installation Guide 10g Release 1 (10.1) for UNIX Systems </a>http://download-west.oracle.com/docs/html/B10811_02/toc.htm </p>
</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/159486.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-10 00:56 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/10/159486.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 安装</title><link>http://www.blogjava.net/liaojiyong/archive/2007/11/06/158451.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Tue, 06 Nov 2007 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/11/06/158451.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/158451.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/11/06/158451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/158451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/158451.html</trackback:ping><description><![CDATA[首先,准备安装需要的软件包和补丁包: <br />
从网上下载升级补丁包,用于将Oracle9.2.0升级到9.2.0.4: <br />
p3006854_9204_LINUX.zip <br />
所有的补丁说明如下： <br />
p3095277_9204_LINUX.zip 9.2.0.4.0的升级补丁包. <br />
p3006854_9204_LINUX.zip 在运行 runInstaller 之前打. <br />
p3119415_9204_LINUX.zip 在升级到9.2.0.4.0之后打. <br />
p2617419_210_GENERIC.zip 打3119415补丁所需要的补丁. <br />
<br />
1.用rpm -qa│grep compat 查看系统中是否安有以下几个软件包： <br />
加载文件命令：#rpm &#8211;ivh /mnt/cdrom/RedHat/RPMB/file.rpm <br />
compat-libstdc++-7.3-2.96.122 <br />
compat-gcc-c++-7.3-2.96.122 <br />
compat-libstdc++-devel-7.3-2.96.122 <br />
compat-db-4.0.14-5 <br />
compat-gcc-7.3-2.96.122 <br />
tcl-devel-8.3.5-92.i386.ipm <br />
<br />
其他相关软件包（安装上述软件包时可能需要）： <br />
glibc-kemheadsers-2.4-8.34.i386.rpm <br />
glib-headers-2.3.2-95.20.i386.rpm <br />
glib-derel-2.3.2-95.20.i386.rpm <br />
<br />
2. rpm -qa │ grep openmotif查看下列软件包 <br />
openmotif21-2.1.30-8 <br />
3. rpm -qa │ grep setarch查看: <br />
setarch-1.3-1 <br />
<br />
第二,准备安装过程中需要的用户和用户组 <br />
在安装的过程中我们使用两个用户同时进行，其中一个是root用户，另外一个是你新建立的oracle用户。 <br />
<br />
1、打开一个终端，以root用户登录或者是：su - root <br />
2、建立oracle 用户和密码 <br />
# groupadd oinstall (在安装oracle时UNIX Group name：oinstall) <br />
# groupadd dba <br />
# useradd -g oinstall -G dba oracle <br />
# passwd oracle <br />
<br />
第三,安装准备步骤. <br />
1、准备文件目录： <br />
# mkdir -p /opt/ora9/product/9.2 <br />
# mkdir /var/opt/oracle <br />
# chown oracle.dba /var/opt/oracle <br />
# chown -R oracle.dba /opt/ora9 <br />
注：如果提示参数太少，可以在目录属性－权限 直接设置成 oracle 权限 dba <br />
<br />
2、设置内核参数，调节信号灯及共享内存： <br />
<br />
修改 /etc/sysctl.conf 这个文件，加入以下的语句： <br />
kernel.shmmax = 2147483648 (机器内存2G，如果你的没这么大可相应设置小些) <br />
kernel.shmmni = 4096 <br />
kernel.shmall = 2097152 <br />
kernel.sem = 250 32000 100 128 <br />
fs.file-max = 65536 <br />
net.ipv4.ip_local_port_range = 1024 65000 <br />
<br />
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数)；SEMMNS(系统信号量最大数)；SEMOPM(每次semopm系统调用操作数)；SEMMNI(系统辛苦量集数最大数). <br />
Shmmax 最大共享内存2GB 物理内存如果小的话可以设置成 536870912. <br />
Shmmni 最小共享内存 4096KB. <br />
Shmall 所有内存大小. <br />
<br />
设置完成后用命令 more /etc/sysctl.conf |grep kernel.s 检查. <br />
<br />
3、设置oracle对文件的要求： <br />
编辑文件：/etc/security/limits.conf 加入以下语句： <br />
oracle soft nofile 65536 <br />
oracle hard nofile 65536 <br />
oracle soft nproc 16384 <br />
oracle hard nproc 16384 <br />
<br />
4、设置系统环境： <br />
首先设置root用户这个终端的。 <br />
export ORACLE_BASE=/opt/ora9 <br />
export ORACLE_HOME=/opt/ora9/product/9.2 <br />
(Oracle被安装在这些位置) <br />
<br />
5.设置oracle用户的环境， 新开一个终端， <br />
su - oracle <br />
***注意一定要新开一个 *** <br />
<br />
打开.bash_profile文件，将如下内容加入： <br />
(命令vi $HOME/.bash_profile 编辑用VI使用可查手册 I 进入edit ;w 存盘 ;q退出) <br />
#oracle 9i <br />
export DISPLAY=&#8221;192.9.200.24:0.0&#8221; (127.0.0.1:0.0) <br />
export ORACLE_BASE=/opt/ora9 <br />
export ORACLE_HOME=/opt/ora9/product/9.2 <br />
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH <br />
export ORACLE_OWNER=oracle <br />
export ORACLE_SID=ora9i (数据库全局变量名) <br />
export ORACLE_TERM=xterm (xterm窗口模式 vt100 终端调试模式) <br />
export LD_ASSUME_KERNEL=2.4.1 <br />
export THREADS_FLAG=native <br />
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH <br />
export PATH=/opt/ora9/product/9.2/bin:$PATH <br />
export NLS_LANG=AMERICAN (设置语言AMERICAN英文) <br />
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data <br />
保存后退出. 执行： source .bash_profile 查看 set | more <br />
然后。退出登录，再次进入，这时候oracle的环境就已经生效了. <br />
<br />
6、解压文件，安装前打补丁，切换到root用户的控制台：(注：打补丁前执行以下语句) <br />
#su &#8211; root <br />
#mv /usr/bin/gcc /usr/bin/gcc323 <br />
#ln &#8211;s /usr/bin/gcc296 /usr/bin/gcc <br />
#mv /usr/bin/g++296 /usr/bin/g++ <br />
#ln &#8211;s /usr/bin/g++ /usr/bin/g++296 <br />
第四,开始正式安装 <br />
1、建立oracle安装临时目录 su - root <br />
#cd /home <br />
#mkdir ora9i <br />
#cd ora9i <br />
这些目录你可以自己定义,用来存放安装文件。 <br />
<br />
2.解gz文件 (窗口模式解压不会把原档案删除，终端模式解压后自动删除原档案) <br />
#gunzip gunzip lnx_920_disk1.cpio.gz <br />
#gunzip lnx_920_disk2.cpio.gz <br />
#gunzip lnx_920_disk3.cpio.gz <br />
<br />
3.释放cpio文件 <br />
#cpio -idmv &lt; lnx_920_disk1.cpio <br />
#cpio -idmv &lt; lnx_920_disk2.cpio <br />
#cpio -idmv &lt; lnx_920_disk3.cpio <br />
//这个步骤将生成三个文件夹：DISK1, DISK2, DISK3 <br />
root身份运行，在/home/ora9i <br />
p3006854_9204_LINUX.zip 补丁安装：(已经将补丁解压到光盘) <br />
#unzip p3006854_9204_LINUX.zip <br />
#cd /home/ora9i /3006854 <br />
#sh rhe13_pre_install.sh <br />
Applying patch... <br />
Patch successfully applied <br />
<br />
4．完成Oracle的安装： <br />
新开一个控制终端(用root用户开) <br />
#xhost +192.168.0.2 (本地IP地址) <br />
(xhost disable访问控制，客户端可以从任何主机进行连接) <br />
这个命令用来保证oracle用户调用X11,否则无法安装 <br />
#su - oracle <br />
在登录终端中切换到oracle用户： <br />
在oracle主目录里运行:# /home/ora9i/Disk1/runInstaller <br />
<br />
********************************************** <br />
安装过程中的注意事项： <br />
1.在安装中让你输入 UNIX group name：oinstall (#groupadd oinstall) <br />
如果提示orainstRoot.sh权限问题，在root终端下执行： <br />
#sh /tmp/orainstRoot.sh 然后继续 <br />
2.在安装中选择 software only 不要建数据库 <br />
3. 安装过程中提示/opt/ora9/product/9.2 权限问题，可另开窗口修改权限为oracle-dba <br />
在结束的时候还会提示权限问题，另开窗口修改权限为root-root <br />
注意的是以下几点: <br />
Relink阶段,会出两个错误:ins_oemagent.mk 和 ins_ctx.mk. 点 Ignore 忽略. <br />
<br />
在部分文档里,要求oracle用户的bash_profile文件中降LD_ASSUME_KERNEL设置为2.4.19,千万不要这样设置,否则会在Rlink时会有一大堆报错 <br />
<br />
再安装过程中,系统会提醒你用root身份去执行两个sh文件,再root的登录终端中按提示操作就可以了 <br />
如果有NLS的错误提示，可以#unset LANG命令,把语言默认成英文. <br />
<br />
************************************************ <br />
5．开始升级oracle su - oracle <br />
安装结束后,HTTPD会自动运行.在升级之前,需要将它停下来. <br />
$ cd $ORACLE_HOME/Apache/Apache/bin <br />
$ apachectl stop <br />
./apachectl stop: httpd stopped <br />
LISTENER也需要停下来. <br />
$ lsnrctl stop <br />
LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 07-NOV-2003 16:25:41 <br />
Copyright &#169; 1991, 2002, Oracle Corporation. All rights reserved. <br />
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521)) <br />
The command completed successfully <br />
注意: 如果不停的话,oracle会提示不能覆盖文件.这个时候再去将服务停下来也可以,点Retry就可以了. <br />
<br />
开始打补丁升级. <br />
注意打补丁时使用root用户,切换到root用户控制台： <br />
解包: <br />
# unzip /home/ora9i/p3095277_9204_LINUX.zip <br />
Archive: p3095277_9204_LINUX.zip <br />
inflating: 9204_lnx32_release.cpio <br />
inflating: README.html <br />
inflating: patchnote.css <br />
(会在/home/ora9/Disk1下自动生成9204_lnx32_release.cpio) <br />
# cpio &#8211;idmv &lt; /home/ora9/Disk1/9204_lnx32_release.cpio <br />
做完这个后，再切换到oracle用户控制台， 再次运行/home/ora9i/Disk1/runInstaller升级，注意必须先选择最下面的安装选项，安装OUI <br />
要不然没有办法打那个最上面的升级补丁。 <br />
升级完OUI后，要退出，再次运行/home/ora9i/Disk1/runInstaller <br />
选择第一个选项,将Oracle升级到9.2.0.4。 <br />
这时候还是会有一个错误出现。再次选择忽略它。 <br />
安装过程中如果出现/opt/ora9/product/9.2 没有权限，直接找到文件夹更改权限. <br />
<br />
6.打其他的补丁： <br />
切换到root的终端。 <br />
首先安装 opatch. <br />
# unzip p2617419_210_GENERIC.zip <br />
Archive: p2617419_210_GENERIC.zip <br />
creating: OPatch/ <br />
creating: OPatch/docs/ <br />
inflating: Opatch/docs/FAQ <br />
...... <br />
inflating: README.txt <br />
#pwd (查看执行权限) <br />
#export PATH=$PATH:/home/ora9i/Opatch:/sbin <br />
(修改PATH时要要包括解压缩出来的Opatch 和 sbin目录) <br />
# unzip p3119415_9204_LINUX.zip <br />
Archive: p3119415_9204_LINUX.zip <br />
creating: 3119415/ <br />
inflating: 3119415/README.txt <br />
<br />
# cd 3119415 <br />
# opatch apply <br />
<br />
****如果提示HOME变量错误可执行语句：**** <br />
#export ORACLE_BASE=/opt/ora9 <br />
#export ORACLE_HOME=/opt/ora9/product/9.2 <br />
出现success的提示就全部安装成功. <br />
(出现选择ORACLE_HOME=/opt/ora9/product/9.2选择N) <br />
<br />
最后切换到oracle终端 <br />
#dbca (如果有乱码执行：#unset LANG) <br />
建oracle数据库 <br />
(查看安装完成后的检查和测试内容) <br />
*************************************** <br />
可能会出现错误提示： /etc/oratab file doesn&#8217;t exist <br />
可执行下面语句： <br />
#cd /opt/ora9/product/9.2/install/utl <br />
#sh root.sh <br />
**************************************** <br />
<br />
数据库建立完成后挂起oracle <br />
启动oracle监听 <br />
$lsnrctl <br />
lsnrctl&gt;status (查状态) <br />
lsnrctl&gt;start <br />
<br />
检查oracle服务是否挂起 <br />
$ps &#8211;ef |grep ora <br />
<br />
连接数据库 <br />
$sqlplus /nolog <br />
SQL&gt;connect / as sysdba <br />
SQL&gt;startup mount <br />
检查是否连接oracle <br />
SQL&gt;select sysdate from dual; <br />
Sp2-0640:Not connected <br />
挂起 <br />
SQL&gt;startup <br />
************************************************** <br />
如果出现错误信息： <br />
ORA-01078:failucr in processing system parameters <br />
LRM-00109:could not open parametet file/opt/ora9/product/9.2/dbs/initora9i.or <br />
执行： <br />
#cp /opt/ora9/admin/orcl/pfile/init.ora.613200412101 /opt/ora9/product/9.2/dbs/initora9.ora <br />
<img src ="http://www.blogjava.net/liaojiyong/aggbug/158451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-11-06 09:52 <a href="http://www.blogjava.net/liaojiyong/archive/2007/11/06/158451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle启动停止命令 (转)     </title><link>http://www.blogjava.net/liaojiyong/archive/2007/10/26/156094.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 26 Oct 2007 04:48:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/10/26/156094.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/156094.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/10/26/156094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/156094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/156094.html</trackback:ping><description><![CDATA[<p>1、启动数据库：</p>
<div>oracle@suse92:~&gt; sqlplus /nolog</div>
<div>&nbsp;</div>
<div>SQL*Plus: Release 9.2.0.4.0 - Production on Fri Jan 20 02:29:37 2006</div>
<div>&nbsp;</div>
<div>Copyright (c) 1982, 2002, Oracle Corporation.&nbsp;All rights reserved.</div>
<div>&nbsp;</div>
<div>SQL&gt; connect /as sysdba</div>
<div>Connected to an idle instance.</div>
<div>SQL&gt; startup</div>
<div>ORACLE instance started.</div>
<div>&nbsp;</div>
<div>Total System Global Area&nbsp;135352820 bytes</div>
<div>Fixed Size<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 455156 bytes</span></div>
<div>Variable Size<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 109051904 bytes</span></div>
<div>Database Buffers<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25165824 bytes</span></div>
<div>Redo Buffers<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 679936 bytes</span></div>
<div>Database mounted.</div>
<div>2、关闭数据库：</div>
<div>oracle@suse92:~&gt; sqlplus /nolog</div>
<div>&nbsp;</div>
<div>SQL*Plus: Release 9.2.0.4.0 - Production on Fri Jan 20 02:29:37 2006</div>
<div>&nbsp;</div>
<div>Copyright (c) 1982, 2002, Oracle Corporation.&nbsp;All rights reserved.</div>
<div>&nbsp;</div>
<div>SQL&gt; connect /as sysdba</div>
<div>Connected to an idle instance.</div>
<div>SQL&gt; shutdwon abort;</div>
<div>3、启动监听器</div>
<div>oracle@suse92:~&gt; lsnrctl start</div>
<div>4、停止监听器</div>
<div>oracle@suse92:~&gt; lsnrctl stop</div>
<div>5、查看监听器状态</div>
<div>　　oracle@suse92:~&gt; lsnrctl</div>
<div>　　LSNRCTL&gt; status</div>
<div>　　LSNRCTL&gt; exit</div>
<div></div>
<div>-------------------------------------------------------------------</div>
<div>More Detail:</div>
<div><a href="http://www.softone.com.cn/serve04_03.asp">http://www.softone.com.cn/serve04_03.asp</a></div>
<div></div>
<div><span class="b12red">ORACLE 安装配置方法 (以ORACLE8.1.6为例)</span><br />
<br />
<span class="b12red">一、安装</span><br />
<br />
<strong>1、服务端</strong><br />
　　服务端安装前提条件：操作系统为WINDOWS 2000、WINDOWS NT。<br />
　　步骤：<br />
　　1) 找到ORACLE 8.1.6的安装目录，点击SETUP.EXE文件，进入"Oracle Universal Installer"界面；<br />
　　　<img height="309" alt="" src="http://www.softone.com.cn/images/p11.jpg" width="399" /><br />
<br />
　　2) 在弹出的窗体中选择"下一步"继续安装，弹出以下窗体；如果以前安装过ORACLE，则点击"卸装产品"按钮(卸载过程见第二章：卸载)，如果要查看以前安装的ORACLE，点击"已安装产品"按钮。<br />
　　　<img height="320" alt="" src="http://www.softone.com.cn/images/p12.jpg" width="409" /><br />
<br />
　　3) 选择文件来源和待安装目录，点击"下一步"，弹出以下界面；<br />
来源路径一般为默认路径，但不管是本地安装还是在其它机器上安装，安装数据来源路径必须为ORACLE目录下STAGE文件夹下的PRODUCTS.JAR文件。<br />
　　名称默认为：ORAHOME81，该名称是ORACLE安装时在注册表中名称，建议不要修改，采用系统默认的名称。<br />
　　路径为当前ORACLE待安装的路径，可修改。修改时，建议只修改安装的磁盘分区，如图中的"e"，后面的"Oracle\Ora81"建议采用系统默认安装目录。<br />
　　　<img height="296" alt="" src="http://www.softone.com.cn/images/p13.jpg" width="374" /><br />
<br />
　　4) 在"可用产品"窗体中，如果安装服务端程序，则在"选择要安装的产品"选项中选择"Oracle 8i Enterprise Edition 8.1.6.0.0；如果安装客户端程序，则在"选择要安装的产品"选项中选择"Oracle 8i Client 8.1.6.0.0；选择安装产品后，点击"下一步"，弹出以下窗体：<br />
　　　<img height="269" alt="" src="http://www.softone.com.cn/images/p14.jpg" width="349" /><br />
<br />
　　5）、选择安装类型，一般选择默认的"典型（1001MB）"，"自定义"为高级用户选项，建议不选择此项，选择安装类型后，点击"下一步"，弹出以下窗体；<br />
　　　<img height="313" alt="" src="http://www.softone.com.cn/images/p15.jpg" width="397" /> <br />
<br />
　　6）、输入全局数据库名和SID，全局数据库名为ORACLE连接串，可任意录入，如：test.softone.com，SID为ORACLE连接服务，客户端需以此录入的SID进行连接（需牢记），录入完成后，点击"下一步"，弹出以下界面；<br />
　　　<img height="309" alt="" src="http://www.softone.com.cn/images/p16.jpg" width="399" /> <br />
<br />
　　7）在"摘要"窗口点击"安装"，弹出以下界面：<br />
　　　<img height="300" alt="" src="http://www.softone.com.cn/images/p17.jpg" width="386" /><br />
<br />
　　8）安装完成后出现以下界面，进行系统自动配置NET8 CONFIGURATION ASSISTANT.<br />
　　　<img height="307" alt="" src="http://www.softone.com.cn/images/p18.jpg" width="382" /><br />
<br />
　　9）NET8配置完成后，系统自动创建数据库<br />
　　　<img height="251" alt="" src="http://www.softone.com.cn/images/p19.jpg" width="376" /> <br />
<br />
　　10）数据库创建完成，点击"确定" 退出<br />
　　　<img height="209" alt="" src="http://www.softone.com.cn/images/p20.jpg" width="371" /> <br />
<br />
　　11）安装完成，点击"退出"按钮，退出安装过程。<br />
　　　<img height="307" alt="" src="http://www.softone.com.cn/images/p21.jpg" width="393" /><br />
<br />
<strong>2、客户端</strong><br />
　　操作过程同服务端安装。<br />
<br />
<span class="b12red">二、卸载</span><br />
<br />
<strong>1、服务端</strong><br />
　　1）、找到ORACLE 8.1.6的安装目录，点击SETUP.EXE文件，弹出以下界面：<br />
<br />
　　2）、在弹出的窗体中选择"卸装产品"按钮，弹出以下界面；<br />
<br />
　　3）、选择已安装的产品，点击"删除"按钮，弹出以下窗体；<br />
<br />
　　4）在弹出"确认"对话框，点击"是"，弹出以下窗体；<br />
<br />
　　5）、删除完成后，弹出以下界面，点击"关闭"按钮退出。<br />
<br />
　　6）、退出后回到欢迎界面：<br />
<br />
　　7）、用户可点击"下一步"进行安装或点击"退出"按钮结束卸载过程。<br />
<br />
<strong>2、客户端</strong><br />
　　与服务端卸载过程相同。<br />
<br />
<span class="b12red">三、ORACLE实例启动和关闭</span><br />
<br />
<strong>1、使用SQL*PLUS启动和终止实例</strong><br />
<br />
1.1、本地启动<br />
　　在命令提示符下输入：<br />
　　SQLPLUS /NOLOG<br />
　　CONNECT /AS SYSDBA<br />
　　STARTUP<br />
<br />
1.2、本地关闭<br />
　　在命令提示符下输入：<br />
　　SQLPLUS /NOLOG<br />
　　CONNECT /AS SYSDBA<br />
　　SHUTDOWN<br />
<br />
1.3、远程启动<br />
　　在命令提示符下输入（此方式必须先进行关闭数据库操作，见1.4、远程关闭（要求远程数据库必须是已启动），在E:\ORACLE\ORA81\SYSMAN\IFILES目录下生成一个DE_TEST_ZCB_8112.ORA文件后，再以此文件启动数据库）：<br />
　　SQLPLUS /NOLOG<br />
　　CONNECT INTERNAL/ORACLE@TEST.SOFTONE.COM AS SYSDBA<br />
　　STARTUP FILE=E:\ORACLE\ORA81\SYSMAN\IFILES\DE_TEST_ZCB_8112.ORA<br />
　　此路径为远程启动服务路径，一般情况下在本地安装目录的ORACLE\ORA81\SYSMAN\IFILES下。<br />
INTERNAL 为用户名，ORACLE为密码，TEST.SOFTONE.COM为远程服务连接串。<br />
<br />
1.4、远程关闭<br />
　　在命令提示符下输入：<br />
　　SQLPLUS /NOLOG<br />
　　CONNECT INTERNAL/ORACLE@TEST.SOFTONE.COM AS SYSDBA<br />
　　SHUTDOWN<br />
　　INTERNAL 为用户名，ORACLE为密码，TEST.SOFTONE.COM为远程服务连接串。 <br />
<br />
<strong>2、 用服务器管理器启动和终止实例</strong><br />
<br />
2.1、本地启动<br />
　　在命令提示符下输入：<br />
　　SVRMGRL<br />
　　CONNECT INTERNAL<br />
　　STARTUP<br />
<br />
2.2、本地关闭<br />
　　在命令提示符下输入：<br />
　　SVRMGRL<br />
　　CONNECT INTERNAL<br />
　　SHUTDOWN<br />
<br />
2.3、远程启动<br />
　　在命令提示符下输入（此方式必须先进行关闭数据库操作，见2.4、远程关闭（要求远程数据库必须是已启动），在E:\ORACLE\ORA81\SYSMAN\IFILES目录下生成一个DE_TEST_ZCB_8112.ORA文件后，再以此文件启动数据库）：<br />
　　SVRMGRL<br />
　　CONNECT INTERNAL/ORACLE@TEST.SOFTONE.COM AS SYSDBA<br />
　　STARTUP<br />
　　PFILE= E:\ORACLE\ORA81\SYSMAN\IFILES\DE_TEST_ZCB_8112.ORA<br />
　　INTERNAL 为用户名，ORACLE为密码，TEST.SOFTONE.COM为远程服务连接串。<br />
　　此路径为远程启动服务路径，一般情况下在本地安装目录的ORACLE\ORA81\SYSMAN\IFILES下。<br />
<br />
2.4、远程关闭<br />
　　在命令提示符下输入：<br />
　　SVRMGRL<br />
　　CONNECT INTERNAL/ORACLE@TEST.SOFTONE.COM AS SYSDBA<br />
　　SHUTDOWN<br />
<br />
<strong>3、 用实例管理程序启动和终止实例</strong><br />
　　1）、打开管理程序,如图<br />
<br />
　　2）、点击DBA STUDIO，进入"oracle enterprise manager 登录"窗口<br />
<br />
　　3）、选择"LAUNCH DBA STUDIO STANDALONE"，点击"确定"按钮，弹出以下窗体；<br />
<br />
　　4）、在左边的列表中双击或点击右键菜单中的"连接"，弹出以下窗体；<br />
<br />
　　5）、录入用户名：INTERNAL，口令：oracle，选择连接身份为"SYSDBA"，点击确定，出现以下界面，选择例程下的数据库，点击"打开"单选框，再点击"应用"按纽<br />
<br />
　　6）如果没有使用的数据库，可在文件菜单中选择"将数据库添加到树"<br />
<br />
　　7）录入主机名，端口号、SID和网络服务名。主机名为本地计算机名，如果连接远程服务器，则录入远程计算机名；端口号默认为1521，不能修改；SID为安装时录入的SID（必须一致），如果连接的为远程数据库，则录入远程服务器的SID；网络服务名可为安装时录入的网络服务名，可任意修改；最后点击"确定"即可。<br />
<br />
　　8）、重复步骤4、5。<br />
<br />
4、 使用服务控制面板启动和终止实例<br />
　　　<img height="392" alt="" src="http://www.softone.com.cn/images/p22.jpg" width="554" /><br />
<span class="b12red"><br />
四、NET8监听器</span><br />
<br />
1）、 在命令提示符下录入：<br />
　　LSNRCTL<br />
　　START（启动）<br />
　　STOP（关闭）<br />
　　STATUS（查看状态）<br />
<br />
2）、也可在控制面板的服务中选择ORACLE ORAHOME81 TNSLISTENER，双击或点击鼠标右键点击"启动"。 <br />
<br />
<span class="b12red">五、TNSNAMES.ORA配置</span><br />
<br />
　　在安装目录下，如：E:\Oracle\Ora81\network\ADMIN下用写字板或记事本打开TNSNAME.ORA文件，文件内容大概如下：<br />
　　TEST.SOFTONE.COM =<br />
　　(DESCRIPTION =<br />
　　(ADDRESS_LIST =<br />
　　(ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521))<br />
　　)<br />
　　(CONNECT_DATA =<br />
　　(SERVICE_NAME = test)<br />
　　)<br />
　　)<br />
　　蓝色部分为安装时录入的信息。<br />
<br />
　　如果该文件没有配置成功，该文件可通过以下步骤进行配置：<br />
　　1）、在程序菜单中打开NET8 CONFIGURATION ASSISTANT<br />
<br />
　　2）、选择Net8 Configuration Assistant,打开，进入"Net8 Configuration Assistant:欢迎"窗口<br />
<br />
　　2）、选择"本地网络服务名设置"，点击"下一步"， 弹出以下窗体；<br />
<br />
　　3）、在"Net8 Configuration Assistant:网络服务名配置"窗口中选择"添加"，点击"下一步"， 弹出以下窗体；<br />
<br />
　　4）在"Net8 Configuration Assistant:网络服务名配置，数据库版本"窗口中选择"ORACLE 8I数据库或服务"，点击"下一步"，弹出以下窗体；<br />
<br />
　　5）在"Net8 Configuration Assistant:网络服务名配置，服务名"窗口输入服务名，此服务名跟安装时录入的服务名（SID）相同，录入后，点击"下一步"，弹出以下窗体；<br />
<br />
　　6）、在"Net8 Configuration Assistant:网络服务名配置，请选择协议"窗口选择"TCP"此时只能选择"TCP"，点击"下一步", 弹出以下窗体；<br />
<br />
　　7）在"Net8 Configuration Assistant:网络服务名配置，TCP/IP协议"窗口输入主机名（如果连接本地数据库，则录入本地计算机名，如果连接远程数据库，则录入远程计算机名），选择默认的"请使用标准端口号1521"（建议最好不要修改），点击"下一步"，弹出以下窗体；<br />
<br />
　　8）、在"Net8 Configuration Assistant:网络服务名配置，测试"窗口选择"是，进行测试"，点击"下一步"，弹出以下窗体；<br />
<br />
　　9）、当"Net8 Configuration Assistant:网络服务名配置，正在连接"窗口对话框中出现提示"正在连接&#8230;.测试成功"信息，表示测试通过。此时点击"下一步"，进入"Net8 Configuration Assistant: 网络服务名配置，网络服务名"窗口；<br />
<br />
　　10）、在"Net8 Configuration Assistant:网络服务名配置，网络服务名"窗口输入网络服务名，服务名为ORACLE连接串，可任意录入，如：test，点击"下一步"，弹出以下窗体；<br />
<br />
　　11）、在"Net8 Configuration Assistant:网络服务名配置，是否需要另一个网络服务名"窗口中选择"否"，点击"下一步"，进入"网络服务名配置完成" 窗口；<br />
<br />
　　12）、在"网络服务名配置完成"窗口中点击"下一步"，弹出以下窗体；<br />
<br />
　　13）、在"欢迎"窗口点击"完成"，退出配置过程<br />
<br />
　　TNSNAMES.ORA配置完成后，再配置BDE（BDE如何配置略），可通过BDE、PLSQL、SQL EXPLORER和TNSPING命令来测试ORACLE是否连接正确。下面用TNSPING来测试是否连接。<br />
<br />
　　在命令提示符下录入：　TNSPING TEST.SOFTONE.COM<br />
<br />
<span class="b12red">六、表空间、用户的创建和删除</span><br />
<br />
<strong>1、表空间的创建、删除</strong><br />
　　1）、命令方式创建表空间<br />
录入命令：<br />
CREATE TABLESPACE CHECKUP_HISTORY DATAILE '/M01/ORADATA/BIBDB/CHECKUP_HISTORY.DBF' SIZE 1000M;<br />
这条语句创建了一个名为CHECKUP_HISTORY.DBF的文件，容量为1000MB，容纳了存储在CHECKUP_HISTORY表空间的所有数据。<br />
<br />
　　2）、建议用此方式建立表空空间<br />
　　打开DBA STUDIO，<br />
<br />
　　选择存储下表空间，单击右键，选择创建，出现以下界面：<br />
<br />
　　录入名称和其他相关的设置（其它设置建议使用默认值），点击"创建"按纽<br />
　　如果要删除某表空间，则选中该表空间，然后点击鼠标右键，选择"移去"即可。<br />
<br />
<strong>2、用户的创建、删除</strong><br />
　　1）、命令方式建立、删除用户<br />
　　建立<br />
　　create user pharmacy<br />
　　identified by pharmacy<br />
　　default tablespace PHARMACY<br />
　　temporary tablespace TEMP<br />
　　profile DEFAULT;<br />
　　grant dba to pharmacy;<br />
　　 删除<br />
　　DROP USER PHARMACY CASCADE<br />
<br />
　　2）、通过PLSQL建立、删除用户<br />
　　建立：<br />
　　打开PLSQL，以SYSTEM，manager登录，选择USERS，以鼠标右键选择NEW，输入名称、密码、表空间、临时表空间和用户权限，点击"APPLY"。<br />
　　删除<br />
　　选择用户，以鼠标右键选择"DROP"<br />
<br />
　　3）用ORACLE 建立、删除用户<br />
　　建立：<br />
　　打开DBA STUDIO<br />
　　选择安全下用户，点击鼠标右键选择"创建" <br />
　　输入名称、口令和用户权限，点击"创建"按纽<br />
　　删除：<br />
　　选择需删除的用户，点击鼠标右键，选择"移去"。<br />
<br />
<span class="b12red">七、数据脚本导入、导出</span><br />
<strong>1、 导入</strong><br />
　　1）、命令方式导入<br />
　　IMP PHARMACY/PHARMACY@TEST.SOFTONE.COM D:\DD\PHARMACY.DMP FULL=Y<br />
　　此方式导入的数据库带有表结构和数据内容。<br />
<br />
　　2）、使用PLSQL导入<br />
　　选择TOOLS菜单下的IMPORT TABLES ，选择需要导入的脚本，点击"IMPORT"按纽<br />
　　此方式导入的数据库文件中带有表结构和数据内容。<br />
　　此方式导入的数据库可能只有表结构，也可能只有数据内容（根据录制的脚本而定）。<br />
<br />
　　3）、在PLSQL的NEW菜单下选择COMMAND WINDOW,右键菜单中选择"LOAD"，选择需要导入的数据脚本，系统自动进行导入操作。<br />
<br />
<strong>2、导出</strong><br />
　　1）、命令方式导出<br />
　　EXP PHARMACY/PHARMACY@TEST.SOFTONE.COM D:\DD\200.DMP<br />
　　此方式导出的数据库带有表结构和数据内容。建议使用此方式进行数据导出。<br />
<br />
　　2）、使用PLSQL工具导出<br />
　　选择TOOLS菜单下的EXPORT TABLES ，选择需要导出的表名称，录入需要导出的脚本名称，点击"EXPORT"按纽<br />
　　 此方式导出的数据带有数据结构和数据内容。<br />
　　此方式导出的数据只带有数据结构，不带数据内容。<br />
<br />
　　3）在PLSQL工具的TOOLS菜单下选择EXPORT USER OBJECTS （版本为5.1以上才有此功能），录入需要导出的脚本名称（默认为全部选中，如果只导出部分表或触发器等等，用鼠标在列表中自行选择），点击"EXPORT"按纽<br />
<br />
　　此方式导出的数据库只带有表结构，不导出数据内容。如果只导出表结构，建议使用此方式进行导出。</div>
http://blog.csdn.net/ak_2005/archive/2007/03/05/1520739.aspx
<img src ="http://www.blogjava.net/liaojiyong/aggbug/156094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-10-26 12:48 <a href="http://www.blogjava.net/liaojiyong/archive/2007/10/26/156094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE应用常见傻瓜问题1000问（轉）</title><link>http://www.blogjava.net/liaojiyong/archive/2007/04/27/114006.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 27 Apr 2007 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/04/27/114006.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/114006.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/04/27/114006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/114006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/114006.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ORACLE应用常见傻瓜问题1000问- 1 -ORACLE应用常见傻瓜问题1000问ORACLE应用常见傻瓜问题1000问- 2 -目 录1. Oracle安装完成后的初始口令?2. ORACLE9IAS WEB CACHE的初始默认用户和密码？3. oracle 8.0.5怎幺创建数据库?4. oracle 8.1.7怎幺创建数据库?5. oracle 9i 怎幺创建数据库?6. oracle...&nbsp;&nbsp;<a href='http://www.blogjava.net/liaojiyong/archive/2007/04/27/114006.html'>阅读全文</a><img src ="http://www.blogjava.net/liaojiyong/aggbug/114006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-04-27 10:24 <a href="http://www.blogjava.net/liaojiyong/archive/2007/04/27/114006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于数据库名(db_name)、实例名(instance_name)、ORACLE_SID(轉)</title><link>http://www.blogjava.net/liaojiyong/archive/2007/04/27/113998.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 27 Apr 2007 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/04/27/113998.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/113998.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/04/27/113998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/113998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/113998.html</trackback:ping><description><![CDATA[&nbsp; 数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID) <br>&nbsp; 在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。在ORACLE8i、9i中出现了新的参数，即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。这些都存在于同一个数据库中的标识，用于区分不同数据库的参数。 <br><br>一、什么是数据库名(db_name)? <br>&nbsp; 数据库名是用于区分数据的内部标识，是以二进制方式存储于数据库控制文件中的参数，在数据安装或创建之后将不得修改。数据库安装完成后，该参数被写入数据库参数文件pfile中，格式如下： <br>[code:1:1aaf156970] <br>......... <br>db_name="orcl"&nbsp;&nbsp;&nbsp;&nbsp; #(不允许修改) <br>db_domain=dbcenter.toys.com <br>instance_name=orcl <br>service_names=orcl.dbcenter.toys.com <br>control_file=(............... <br>......... <br>[/code:1:1aaf156970] <br>在每一个运行的ORACLE8i数据库中都有一个数据库名(db_name),如果一个服务器程序中创建了两个数据库，则有两个数据库名。其控制参数据分属在不同的pfile中控制着相关的数据库。 <br><br>二、什么是数据库实例名(instance_name) <br>&nbsp; 数据库实例名则用于和操作系统之间的联系，用于对外部连接时使用。在操作系统中要取得与数据库之间的交互，必须使用数据库实例名。例如，要和某一个数据库server连接，就必须知道其数据库实例名，只知道数据库名是没有用的，与数据库名不同，在数据安装或创建数据库之后，实例名可以被修改。数据库安装完成后，该实例名被写入数据库参数文件pfile中，格式如下： <br>[code:1:1aaf156970] <br>db_name="orcl"&nbsp;&nbsp;&nbsp;&nbsp; #(<span style="COLOR: red">不允许修改</span>) <br>db_domain=dbcenter.toys.com <br>instance_name=orcl&nbsp;&nbsp;#(<span style="COLOR: red">可以修改,可以与db_name相同也可不同)</span> <br>service_names=orcl.dbcenter.toys.com <br>control_file=(............... <br>......... <br>[/code:1:1aaf156970] <br>数据库名与实例名之间的关系。 <br><span style="COLOR: red">数据库名与实例名之间的关系一般是一一对应关系</span>，有一个数据库名就有一个实例名，如果在一个服务器中创建两个数据库，则有两个数据库名，两个数据库实例名，用两个标识确定一个数据库，用户和实例相连接。 <br><span style="COLOR: #ff0000"><u>但在8i、9i的并行服务器结构中，数据库与实例之间不存在一一对应关系，而是一对多关系，(一个数据库对应多个实例，同一时间内用户只一个实例相联系，当某一实例出现故障，其它实例自动服务，以保证数据库安全运行。)</u> <br></span><br>三、操作系统环境变量(ORACLE_SID) <br>在实际中，对于数据库实例名的描述有时使用实例名(instance_name)参数，有时使用ORACLE_SID参数。这两个都是数据库实例名，它们有什么区别呢？(经常弄混) <br>[code:1:1aaf156970] <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ORACLE_SID) <br><span style="COLOR: #ff0000">OS&lt;----------------&gt;&nbsp;ORACLE&nbsp;数据库&nbsp;&lt;--------(Instance_name(实例名)) <br></span><br>[/code:1:1aaf156970] <br>上图表示实例名instance_name、ORACLE_SID与数据库及操作系统之间的关系，虽然这里列出的两个参数都是数据库实例名，但instance_name参数是ORACLE数据库的参数，此参数可以在参数文件中查询到，而ORACLE_SID参数则是操作系统环境变量。 <br>操作系统环境变量ORACLE_SID用于和操作系统交互。也就是说，在操作系统中要想得到实例名，就必须使用ORACLE_SID。此参数与ORACLE_BASE、ORACLE_HOME等用法相同。在数据库安装之后，ORACLE_SID被用于定义数据库参数文件的名称。如： <br>$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora。 <br>定义方法: <br>[code:1:1aaf156970] <br>export&nbsp;ORACLE_SID=orcl <br>[/code:1:1aaf156970] <br><br>如果在同一服务器中创建了多个数据库，则必然同时存在多个数据库实例,这时可以重复上述定义过程，以选择不同实例。 <br><br>还可以用 <br>[code:1:1aaf156970] <br>[oracle@Datacent]$&nbsp;.&nbsp;oraenv <br>[/code:1:1aaf156970] <br><br>来切换不同的ORACLE_SID来通过操作系统来启动不同的实例(instance) <br>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/113998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-04-27 10:01 <a href="http://www.blogjava.net/liaojiyong/archive/2007/04/27/113998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 函數大全 </title><link>http://www.blogjava.net/liaojiyong/archive/2006/09/14/69529.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Thu, 14 Sep 2006 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/09/14/69529.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/69529.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/09/14/69529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/69529.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/69529.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">SQL中的单记录函数<br />1.ASCII<br />返回与指定的字符对应的十进制数;<br />SQL&gt; select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;</font>
		</p>
		<p>
				<font size="2">        A         A      ZERO     SPACE<br />--------- --------- --------- ---------<br />       65        97        48        32</font>
		</p>
		<p>
				<br />
				<font size="2">2.CHR<br />给出整数,返回对应的字符;<br />SQL&gt; select chr(54740) zhao,chr(65) chr65 from dual;</font>
		</p>
		<p>
				<font size="2">ZH C<br />-- -<br />赵 A</font>
		</p>
		<p>
				<font size="2">3.CONCAT<br />连接两个字符串;<br />SQL&gt; select concat('010-','88888888')||'转23'  高乾竞电话 from dual;</font>
		</p>
		<p>
				<font size="2">高乾竞电话<br />----------------<br />010-88888888转23</font>
		</p>
		<p>
				<font size="2">4.INITCAP<br />返回字符串并将字符串的第一个字母变为大写;<br />SQL&gt; select initcap('smith') upp from dual;</font>
		</p>
		<p>
				<font size="2">UPP<br />-----<br />Smith</font>
		</p>
		<p>
				<br />
				<font size="2">5.INSTR(C1,C2,I,J)<br />在一个字符串中搜索指定的字符,返回发现指定的字符的位置;<br />C1    被搜索的字符串<br />C2    希望搜索的字符串<br />I     搜索的开始位置,默认为1<br />J     出现的位置,默认为1<br />SQL&gt; select instr('oracle traning','ra',1,2) instring from dual;</font>
		</p>
		<p>
				<font size="2"> INSTRING<br />---------<br />        9</font>
		</p>
		<p>
				<br />
				<font size="2">6.LENGTH<br />返回字符串的长度;<br />SQL&gt; select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;</font>
		</p>
		<p>
				<font size="2">NAME   LENGTH(NAME) ADDR             LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL))<br />------ ------------ ---------------- ------------ --------- --------------------<br />高乾竞            3 北京市海锭区                6   9999.99                    7</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">7.LOWER<br />返回字符串,并将所有的字符小写<br />SQL&gt; select lower('AaBbCcDd')AaBbCcDd from dual;</font>
		</p>
		<p>
				<font size="2">AABBCCDD<br />--------<br />aabbccdd</font>
		</p>
		<p>
				<br />
				<font size="2">8.UPPER<br />返回字符串,并将所有的字符大写<br />SQL&gt; select upper('AaBbCcDd') upper from dual;</font>
		</p>
		<p>
				<font size="2">UPPER<br />--------<br />AABBCCDD</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">9.RPAD和LPAD(粘贴字符)<br />RPAD  在列的右边粘贴字符<br />LPAD  在列的左边粘贴字符<br />SQL&gt; select lpad(rpad('gao',10,'*'),17,'*')from dual;</font>
		</p>
		<p>
				<font size="2">LPAD(RPAD('GAO',1<br />-----------------<br />*******gao*******<br />不够字符则用*来填满</font>
		</p>
		<p>
				<br />
				<font size="2">10.LTRIM和RTRIM<br />LTRIM  删除左边出现的字符串<br />RTRIM  删除右边出现的字符串<br />SQL&gt; select ltrim(rtrim('   gao qian jing   ',' '),' ') from dual;</font>
		</p>
		<p>
				<font size="2">LTRIM(RTRIM('<br />-------------<br />gao qian jing</font>
		</p>
		<p>
				<br />
				<font size="2">11.SUBSTR(string,start,count)<br />取子字符串,从start开始,取count个<br />SQL&gt; select substr('13088888888',3,8) from dual;</font>
		</p>
		<p>
				<font size="2">SUBSTR('<br />--------<br />08888888</font>
		</p>
		<p>
				<br />
				<font size="2">12.REPLACE('string','s1','s2')<br />string   希望被替换的字符或变量 <br />s1       被替换的字符串<br />s2       要替换的字符串<br />SQL&gt; select replace('he love you','he','i') from dual;</font>
		</p>
		<p>
				<font size="2">REPLACE('H<br />----------<br />i love you</font>
		</p>
		<p>
				<br />
				<font size="2">13.SOUNDEX<br />返回一个与给定的字符串读音相同的字符串<br />SQL&gt; create table table1(xm varchar(8));<br />SQL&gt; insert into table1 values('weather');<br />SQL&gt; insert into table1 values('wether');<br />SQL&gt; insert into table1 values('gao');</font>
		</p>
		<p>
				<font size="2">SQL&gt; select xm from table1 where soundex(xm)=soundex('weather');</font>
		</p>
		<p>
				<font size="2">XM<br />--------<br />weather<br />wether</font>
		</p>
		<p>
				<br />
				<font size="2">14.TRIM('s' from 'string')<br />LEADING   剪掉前面的字符<br />TRAILING  剪掉后面的字符<br />如果不指定,默认为空格符 </font>
		</p>
		<p>
				<font size="2">15.ABS<br />返回指定值的绝对值<br />SQL&gt; select abs(100),abs(-100) from dual;</font>
		</p>
		<p>
				<font size="2"> ABS(100) ABS(-100)<br />--------- ---------<br />      100       100</font>
		</p>
		<p>
				<br />
				<font size="2">16.ACOS<br />给出反余弦的值<br />SQL&gt; select acos(-1) from dual;</font>
		</p>
		<p>
				<font size="2"> ACOS(-1)<br />---------<br />3.1415927</font>
		</p>
		<p>
				<br />
				<font size="2">17.ASIN<br />给出反正弦的值<br />SQL&gt; select asin(0.5) from dual;</font>
		</p>
		<p>
				<font size="2">ASIN(0.5)<br />---------<br />.52359878</font>
		</p>
		<p>
				<br />
				<font size="2">18.ATAN<br />返回一个数字的反正切值<br />SQL&gt; select atan(1) from dual;</font>
		</p>
		<p>
				<font size="2">  ATAN(1)<br />---------<br />.78539816</font>
		</p>
		<p>
				<br />
				<font size="2">19.CEIL<br />返回大于或等于给出数字的最小整数<br />SQL&gt; select ceil(3.1415927) from dual;</font>
		</p>
		<p>
				<font size="2">CEIL(3.1415927)<br />---------------<br />              4</font>
		</p>
		<p>
				<br />
				<font size="2">20.COS<br />返回一个给定数字的余弦<br />SQL&gt; select cos(-3.1415927) from dual;</font>
		</p>
		<p>
				<font size="2">COS(-3.1415927)<br />---------------<br />             -1</font>
		</p>
		<p>
				<br />
				<font size="2">21.COSH<br />返回一个数字反余弦值<br />SQL&gt; select cosh(20) from dual;</font>
		</p>
		<p>
				<font size="2"> COSH(20)<br />---------<br />242582598</font>
		</p>
		<p>
				<br />
				<font size="2">22.EXP<br />返回一个数字e的n次方根<br />SQL&gt; select exp(2),exp(1) from dual;</font>
		</p>
		<p>
				<font size="2">   EXP(2)    EXP(1)<br />--------- ---------<br />7.3890561 2.7182818</font>
		</p>
		<p>
				<br />
				<font size="2">23.FLOOR<br />对给定的数字取整数<br />SQL&gt; select floor(2345.67) from dual;</font>
		</p>
		<p>
				<font size="2">FLOOR(2345.67)<br />--------------<br />          2345</font>
		</p>
		<p>
				<br />
				<font size="2">24.LN<br />返回一个数字的对数值<br />SQL&gt; select ln(1),ln(2),ln(2.7182818) from dual;</font>
		</p>
		<p>
				<font size="2">    LN(1)     LN(2) LN(2.7182818)<br />--------- --------- -------------<br />        0 .69314718     .99999999</font>
		</p>
		<p>
				<br />
				<font size="2">25.LOG(n1,n2)<br />返回一个以n1为底n2的对数 <br />SQL&gt; select log(2,1),log(2,4) from dual;</font>
		</p>
		<p>
				<font size="2"> LOG(2,1)  LOG(2,4)<br />--------- ---------<br />        0         2</font>
		</p>
		<p>
				<br />
				<font size="2">26.MOD(n1,n2)<br />返回一个n1除以n2的余数<br />SQL&gt; select mod(10,3),mod(3,3),mod(2,3) from dual;</font>
		</p>
		<p>
				<font size="2">MOD(10,3)  MOD(3,3)  MOD(2,3)<br />--------- --------- ---------<br />        1         0         2</font>
		</p>
		<p>
				<br />
				<font size="2">27.POWER<br />返回n1的n2次方根<br />SQL&gt; select power(2,10),power(3,3) from dual;</font>
		</p>
		<p>
				<font size="2">POWER(2,10) POWER(3,3)<br />----------- ----------<br />       1024         27</font>
		</p>
		<p>
				<br />
				<font size="2">28.ROUND和TRUNC<br />按照指定的精度进行舍入<br />SQL&gt; select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;</font>
		</p>
		<p>
				<font size="2">ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)<br />----------- ------------ ----------- ------------<br />         56          -55          55          -55</font>
		</p>
		<p>
				<br />
				<font size="2">29.SIGN<br />取数字n的符号,大于0返回1,小于0返回-1,等于0返回0<br />SQL&gt; select sign(123),sign(-100),sign(0) from dual;</font>
		</p>
		<p>
				<font size="2">SIGN(123) SIGN(-100)   SIGN(0)<br />--------- ---------- ---------<br />        1         -1         0</font>
		</p>
		<p>
				<br />
				<font size="2">30.SIN<br />返回一个数字的正弦值<br />SQL&gt; select sin(1.57079) from dual;</font>
		</p>
		<p>
				<font size="2">SIN(1.57079)<br />------------<br />           1</font>
		</p>
		<p>
				<br />
				<font size="2">31.SIGH<br />返回双曲正弦的值<br />SQL&gt; select sin(20),sinh(20) from dual;</font>
		</p>
		<p>
				<font size="2">  SIN(20)  SINH(20)<br />--------- ---------<br />.91294525 242582598</font>
		</p>
		<p>
				<br />
				<font size="2">32.SQRT<br />返回数字n的根<br />SQL&gt; select sqrt(64),sqrt(10) from dual;</font>
		</p>
		<p>
				<font size="2"> SQRT(64)  SQRT(10)<br />--------- ---------<br />        8 3.1622777</font>
		</p>
		<p>
				<br />
				<font size="2">33.TAN<br />返回数字的正切值<br />SQL&gt; select tan(20),tan(10) from dual;</font>
		</p>
		<p>
				<font size="2">  TAN(20)   TAN(10)<br />--------- ---------<br />2.2371609 .64836083</font>
		</p>
		<p>
				<br />
				<font size="2">34.TANH<br />返回数字n的双曲正切值<br />SQL&gt; select tanh(20),tan(20) from dual;</font>
		</p>
		<p>
				<font size="2"> TANH(20)   TAN(20)<br />--------- ---------<br />        1 2.2371609</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">35.TRUNC<br />按照指定的精度截取一个数<br />SQL&gt; select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;</font>
		</p>
		<p>
				<font size="2">   TRUNC1 TRUNC(124.16666,2)<br />--------- ------------------<br />      100             124.16</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">36.ADD_MONTHS<br />增加或减去月份<br />SQL&gt; select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;</font>
		</p>
		<p>
				<font size="2">TO_CHA<br />------<br />200002<br />SQL&gt; select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;</font>
		</p>
		<p>
				<font size="2">TO_CHA<br />------<br />199910</font>
		</p>
		<p>
				<br />
				<font size="2">37.LAST_DAY<br />返回日期的最后一天<br />SQL&gt; select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;</font>
		</p>
		<p>
				<font size="2">TO_CHAR(SY TO_CHAR((S<br />---------- ----------<br />2004.05.09 2004.05.10<br />SQL&gt; select last_day(sysdate) from dual;</font>
		</p>
		<p>
				<font size="2">LAST_DAY(S<br />----------<br />31-5月 -04</font>
		</p>
		<p>
				<br />
				<font size="2">38.MONTHS_BETWEEN(date2,date1)<br />给出date2-date1的月份<br />SQL&gt; select months_between('19-12月-1999','19-3月-1999') mon_between from dual;</font>
		</p>
		<p>
				<font size="2">MON_BETWEEN<br />-----------<br />          9<br />SQL&gt;selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;</font>
		</p>
		<p>
				<font size="2"> MON_BETW<br />---------<br />      -60</font>
		</p>
		<p>
				<br />
				<font size="2">39.NEW_TIME(date,'this','that')<br />给出在this时区=other时区的日期和时间<br />SQL&gt; select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time<br />  2  (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;</font>
		</p>
		<p>
				<font size="2">BJ_TIME             LOS_ANGLES<br />------------------- -------------------<br />2004.05.09 11:05:32 2004.05.09 18:05:32</font>
		</p>
		<p>
				<br />
				<font size="2">40.NEXT_DAY(date,'day')<br />给出日期date和星期x之后计算下一个星期的日期<br />SQL&gt; select next_day('18-5月-2001','星期五') next_day from dual;</font>
		</p>
		<p>
				<font size="2">NEXT_DAY<br />----------<br />25-5月 -01</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">41.SYSDATE<br />用来得到系统的当前日期<br />SQL&gt; select to_char(sysdate,'dd-mm-yyyy day') from dual;</font>
		</p>
		<p>
				<font size="2">TO_CHAR(SYSDATE,'<br />-----------------<br />09-05-2004 星期日<br />trunc(date,fmt)按照给出的要求将日期截断,如果fmt='mi'表示保留分,截断秒<br />SQL&gt; select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,<br />  2  to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;</font>
		</p>
		<p>
				<font size="2">HH                  HHMM<br />------------------- -------------------<br />2004.05.09 11:00:00 2004.05.09 11:17:00</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">42.CHARTOROWID<br />将字符数据类型转换为ROWID类型<br />SQL&gt; select rowid,rowidtochar(rowid),ename from scott.emp;</font>
		</p>
		<p>
				<font size="2">ROWID              ROWIDTOCHAR(ROWID) ENAME<br />------------------ ------------------ ----------<br />AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH<br />AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN<br />AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD<br />AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES</font>
		</p>
		<p>
				<br />
				<font size="2">43.CONVERT(c,dset,sset)<br />将源字符串 sset从一个语言字符集转换到另一个目的dset字符集<br />SQL&gt; select convert('strutz','we8hp','f7dec') "conversion" from dual;</font>
		</p>
		<p>
				<font size="2">conver<br />------<br />strutz</font>
		</p>
		<p>
				<br />
				<font size="2">44.HEXTORAW<br />将一个十六进制构成的字符串转换为二进制</font>
		</p>
		<p>
				<br />
				<font size="2">45.RAWTOHEXT<br />将一个二进制构成的字符串转换为十六进制</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">46.ROWIDTOCHAR<br />将ROWID数据类型转换为字符类型</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">47.TO_CHAR(date,'format')<br />SQL&gt; select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;</font>
		</p>
		<p>
				<font size="2">TO_CHAR(SYSDATE,'YY<br />-------------------<br />2004/05/09 21:14:41</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">48.TO_DATE(string,'format')<br />将字符串转化为ORACLE中的一个日期</font>
		</p>
		<p>
				<br />
				<font size="2">49.TO_MULTI_BYTE<br />将字符串中的单字节字符转化为多字节字符<br />SQL&gt;  select to_multi_byte('高') from dual;</font>
		</p>
		<p>
				<font size="2">TO<br />--<br />高</font>
		</p>
		<p>
				<br />
				<font size="2">50.TO_NUMBER<br />将给出的字符转换为数字<br />SQL&gt; select to_number('1999') year from dual;</font>
		</p>
		<p>
				<font size="2">     YEAR<br />---------<br />     1999</font>
		</p>
		<p>
				<br />
				<font size="2">51.BFILENAME(dir,file)<br />指定一个外部二进制文件<br />SQL&gt;insert into file_tb1 values(bfilename('lob_dir1','image1.gif'));</font>
		</p>
		<p>
				<br />
				<font size="2">52.CONVERT('x','desc','source')<br />将x字段或变量的源source转换为desc<br />SQL&gt; select sid,serial#,username,decode(command,<br />  2  0,'none',<br />  3  2,'insert',<br />  4  3,<br />  5  'select',<br />  6  6,'update',<br />  7  7,'delete',<br />  8  8,'drop',<br />  9  'other') cmd  from v$session where type!='background';</font>
		</p>
		<p>
				<font size="2">      SID   SERIAL# USERNAME                       CMD<br />--------- --------- ------------------------------ ------<br />        1         1                                none<br />        2         1                                none<br />        3         1                                none<br />        4         1                                none<br />        5         1                                none<br />        6         1                                none<br />        7      1275                                none<br />        8      1275                                none<br />        9        20 GAO                            select<br />       10        40 GAO                            none</font>
		</p>
		<p>
				<br />
				<font size="2">53.DUMP(s,fmt,start,length)<br />DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2类型的值<br />SQL&gt; col global_name for a30<br />SQL&gt; col dump_string for a50<br />SQL&gt; set lin 200<br />SQL&gt; select global_name,dump(global_name,1017,8,5) dump_string from global_name;</font>
		</p>
		<p>
				<font size="2">GLOBAL_NAME                    DUMP_STRING<br />------------------------------ --------------------------------------------------<br />ORACLE.WORLD                   Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D</font>
		</p>
		<p>
				<br />
				<font size="2">54.EMPTY_BLOB()和EMPTY_CLOB()<br />这两个函数都是用来对大数据类型字段进行初始化操作的函数</font>
		</p>
		<p>
				<br />
				<font size="2">55.GREATEST<br />返回一组表达式中的最大值,即比较字符的编码大小.<br />SQL&gt; select greatest('AA','AB','AC') from dual;</font>
		</p>
		<p>
				<font size="2">GR<br />--<br />AC<br />SQL&gt; select greatest('啊','安','天') from dual;</font>
		</p>
		<p>
				<font size="2">GR<br />--<br />天</font>
		</p>
		<p>
				<br />
				<font size="2">56.LEAST<br />返回一组表达式中的最小值 <br />SQL&gt; select least('啊','安','天') from dual;</font>
		</p>
		<p>
				<font size="2">LE<br />--<br />啊</font>
		</p>
		<p>
				<br />
				<font size="2">57.UID<br />返回标识当前用户的唯一整数<br />SQL&gt; show user<br />USER 为"GAO"<br />SQL&gt; select username,user_id from dba_users where user_id=uid;</font>
		</p>
		<p>
				<font size="2">USERNAME                         USER_ID<br />------------------------------ ---------<br />GAO                                   25</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">58.USER<br />返回当前用户的名字<br />SQL&gt; select user from  dual;</font>
		</p>
		<p>
				<font size="2">USER<br />------------------------------<br />GAO</font>
		</p>
		<p>
				<br />
				<font size="2">59.USEREVN<br />返回当前用户环境的信息,opt可以是:<br />ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE<br />ISDBA  查看当前用户是否是DBA如果是则返回true<br />SQL&gt; select userenv('isdba') from dual;</font>
		</p>
		<p>
				<font size="2">USEREN<br />------<br />FALSE<br />SQL&gt; select userenv('isdba') from dual;</font>
		</p>
		<p>
				<font size="2">USEREN<br />------<br />TRUE<br />SESSION<br />返回会话标志<br />SQL&gt; select userenv('sessionid') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('SESSIONID')<br />--------------------<br />                 152<br />ENTRYID<br />返回会话人口标志<br />SQL&gt; select userenv('entryid') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('ENTRYID')<br />------------------<br />                 0<br />INSTANCE<br />返回当前INSTANCE的标志<br />SQL&gt; select userenv('instance') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('INSTANCE')<br />-------------------<br />                  1<br />LANGUAGE<br />返回当前环境变量<br />SQL&gt; select userenv('language') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('LANGUAGE')<br />----------------------------------------------------<br />SIMPLIFIED CHINESE_CHINA.ZHS16GBK<br />LANG<br />返回当前环境的语言的缩写<br />SQL&gt; select userenv('lang') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('LANG')<br />----------------------------------------------------<br />ZHS<br />TERMINAL<br />返回用户的终端或机器的标志<br />SQL&gt; select userenv('terminal') from dual;</font>
		</p>
		<p>
				<font size="2">USERENV('TERMINA<br />----------------<br />GAO<br />VSIZE(X)<br />返回X的大小(字节)数<br />SQL&gt; select vsize(user),user from dual;</font>
		</p>
		<p>
				<font size="2">VSIZE(USER) USER<br />----------- ------------------------------<br />          6 SYSTEM</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">60.AVG(DISTINCT|ALL)<br />all表示对所有的值求平均值,distinct只对不同的值求平均值<br />SQLWKS&gt; create table table3(xm varchar(8),sal number(7,2));<br />语句已处理。<br />SQLWKS&gt;  insert into table3 values('gao',1111.11);<br />SQLWKS&gt;  insert into table3 values('gao',1111.11);<br />SQLWKS&gt;  insert into table3 values('zhu',5555.55);<br />SQLWKS&gt; commit;</font>
		</p>
		<p>
				<font size="2">SQL&gt; select avg(distinct sal) from gao.table3;</font>
		</p>
		<p>
				<font size="2">AVG(DISTINCTSAL)<br />----------------<br />         3333.33</font>
		</p>
		<p>
				<font size="2">SQL&gt; select avg(all sal) from gao.table3;</font>
		</p>
		<p>
				<font size="2">AVG(ALLSAL)<br />-----------<br />    2592.59</font>
		</p>
		<p>
				<br />
				<font size="2">61.MAX(DISTINCT|ALL)<br />求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次<br />SQL&gt; select max(distinct sal) from scott.emp;</font>
		</p>
		<p>
				<font size="2">MAX(DISTINCTSAL)<br />----------------<br />            5000</font>
		</p>
		<p>
				<br />
				<font size="2">62.MIN(DISTINCT|ALL)<br />求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次<br />SQL&gt; select min(all sal) from gao.table3;</font>
		</p>
		<p>
				<font size="2">MIN(ALLSAL)<br />-----------<br />    1111.11</font>
		</p>
		<p>
				<br />
				<font size="2">63.STDDEV(distinct|all)<br />求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差<br />SQL&gt; select stddev(sal) from scott.emp;</font>
		</p>
		<p>
				<font size="2">STDDEV(SAL)<br />-----------<br />  1182.5032</font>
		</p>
		<p>
				<font size="2">SQL&gt; select stddev(distinct sal) from scott.emp;</font>
		</p>
		<p>
				<font size="2">STDDEV(DISTINCTSAL)<br />-------------------<br />           1229.951</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">64.VARIANCE(DISTINCT|ALL)<br />求协方差 </font>
		</p>
		<p>
				<font size="2">SQL&gt; select variance(sal) from scott.emp;</font>
		</p>
		<p>
				<font size="2">VARIANCE(SAL)<br />-------------<br />    1398313.9</font>
		</p>
		<p>
				<br />
				<font size="2">65.GROUP BY<br />主要用来对一组数进行统计<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp group by deptno;</font>
		</p>
		<p>
				<font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       10         3      8750<br />       20         5     10875<br />       30         6      9400</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font size="2">66.HAVING<br />对分组统计再加限制条件<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)&gt;=5;</font>
		</p>
		<p>
				<font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       20         5     10875<br />       30         6      9400<br />SQL&gt; select deptno,count(*),sum(sal) from scott.emp having count(*)&gt;=5 group by deptno ;</font>
		</p>
		<p>
				<font size="2">   DEPTNO  COUNT(*)  SUM(SAL)<br />--------- --------- ---------<br />       20         5     10875<br />       30         6      9400</font>
		</p>
		<p>
				<br />
				<font size="2">67.ORDER BY<br />用于对查询到的结果进行排序输出<br />SQL&gt; select deptno,ename,sal from scott.emp order by deptno,sal desc;</font>
		</p>
		<p>
				<font size="2">   DEPTNO ENAME            SAL<br />--------- ---------- ---------<br />       10 KING            5000<br />       10 CLARK           2450<br />       10 MILLER          1300<br />       20 SCOTT           3000<br />       20 FORD            3000<br />       20 JONES           2975<br />       20 ADAMS           1100<br />       20 SMITH            800<br />       30 BLAKE           2850<br />       30 ALLEN           1600<br />       30 TURNER          1500<br />       30 WARD            1250<br />       30 MARTIN          1250<br />       30 JAMES            950<br /></font>
		</p>
		<div class="postFoot">posted @ <a title="permalink" href="/software5168/archive/2006/06/30/55850.html">2006-06-30 09:01</a> software5168 阅读(94) | <a title="comments, pingbacks, trackbacks" href="/software5168/archive/2006/06/30/55850.html#FeedBack">评论 (0)</a> | <a href="/software5168/admin/EditPosts.aspx?postid=55850">编辑</a> <a href="/software5168/AddToFavorite.aspx?id=55850">收藏</a></div>
		<br />
		<p class="date">2006年6月26日 <a id="_14a5a4ffc8ce_HomePageDays_DaysList_ctl13_DayItem_ImageLink" title="Day Archive" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline-block; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 12px; HEIGHT: 15px; BORDER-RIGHT-WIDTH: 0px" href="/software5168/archive/2006/06/26.html">#</a></p>
		<div class="post">
				<div class="postTitle">
						<a id="_14a5a4ffc8ce_HomePageDays_DaysList_ctl13_DayItem_DayList_ctl00_TitleUrl" href="/software5168/archive/2006/06/26/55184.html">SQL语句介绍</a>
				</div>
				<div class="postText">如何从一位菜鸟蜕变成为高手，灵活使用的SQL语句是必不可少的。本文收集了部分比较经典，常用的SQL语句供大家参考，希望对大家有所帮助。 
<p>　　说明：复制表(只复制结构,源表名：a 新表名：b)　　 </p><p>　　SQL: select * into b from a where 1&lt;&gt;1 </p><p>　　说明：拷贝表(拷贝数据,源表名：a 目标表名：b)　　 </p><p>　　SQL: insert into b(a, b, c) select d,e,f from b; </p><p>　　说明：显示文章、提交人和最后回复时间　　 </p><p>　　SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b </p><p>　　说明：外连接查询(表名1：a 表名2：b)　　 </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>　　说明：日程安排提前五分钟提醒　　 </p><p>　　SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&gt;5　　 </p><p>　　说明：两张关联表，删除主表中已经在副表中没有的信息 </p><p>　　SQL: 　　 </p><p>　　delete from info where not exists ( select * from infobz where info.infid=infobz.infid </p><p>　　说明：-- </p><p>　　SQL: 　　 </p><p>　　SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE </p><p>　　 FROM TABLE1, </p><p>　　 (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE </p><p>　　 FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND </p><p>　　 FROM TABLE2 </p><p>　　 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X, </p><p>　　 (SELECT NUM, UPD_DATE, STOCK_ONHAND </p><p>　　 FROM TABLE2 </p><p>　　 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = </p><p>　　 TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') &amp;brvbar;&amp;brvbar; '/01','YYYY/MM/DD') - 1, 'YYYY/MM') Y, </p><p>　　 WHERE X.NUM = Y.NUM （+） </p><p>　　 AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) &lt;&gt; X.STOCK_ONHAND B </p><p>　　WHERE A.NUM = B.NUM </p><p>　　说明：-- </p><p>　　SQL: 　　 </p><p>　　select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称='"&amp;strdepartmentname&amp;"' and 专业名称='"&amp;strprofessionname&amp;"' order by 性别,生源地,高考总成绩 </p><p>　　说明： </p><p>　　从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源） </p><p>　　SQL: 　 </p><p>　　SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV, </p><p>　　 SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC </p><p>　　FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration </p><p>　　 FROM TELFEESTAND a, TELFEE b </p><p>　　 WHERE a.tel = b.telfax) a </p><p>　　GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') </p><p>　　说明：四表联查问题：　　 </p><p>　　SQL: 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>　　说明：得到表中最小的未使用的ID号 </p><p>　　SQL:　 </p><p>　　SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID </p><p>　　 FROM Handle </p><p>　　 WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)　</p></div>
		</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/69529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-09-14 08:55 <a href="http://www.blogjava.net/liaojiyong/archive/2006/09/14/69529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>