﻿<?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-月光记忆-文章分类-ORCLE</title><link>http://www.blogjava.net/sunzhong/category/41042.html</link><description>清泉响露</description><language>zh-cn</language><lastBuildDate>Thu, 15 Oct 2009 14:17:31 GMT</lastBuildDate><pubDate>Thu, 15 Oct 2009 14:17:31 GMT</pubDate><ttl>60</ttl><item><title>oracle sql语句优化（转载） </title><link>http://www.blogjava.net/sunzhong/articles/297617.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Fri, 09 Oct 2009 19:14:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/297617.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/297617.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/297617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/297617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/297617.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) ：ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名， FROM 子句中写在最后的表 ( 基础表 driving table) 将被最先处理，在 FROM 子句中包含多个表的情况下 , 你必须选择记录条数最少的表作为基础表。如果有 3...&nbsp;&nbsp;<a href='http://www.blogjava.net/sunzhong/articles/297617.html'>阅读全文</a><img src ="http://www.blogjava.net/sunzhong/aggbug/297617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-10-10 03:14 <a href="http://www.blogjava.net/sunzhong/articles/297617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)Oracle数据库中的锁机制研究</title><link>http://www.blogjava.net/sunzhong/articles/296308.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Thu, 24 Sep 2009 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/296308.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/296308.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/296308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/296308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/296308.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文通过对Oracle数据库锁机制的研究，首先介绍了Oracle数据库锁的种类，并描述了实际应用中遇到的与锁相关的异常情况，特别对经常遇到的由于等待锁而使事务被挂起的问题进行了定位及解决，并对死锁这一比较严重的现象，提出了相应的解决方法和具体的分析过程。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时，在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据，破坏数据库的一致性。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前，先向系统发出请求，对其加锁。加锁后事务就对该数据对象有了一定的控制，在该事务释放锁之前，其他的事务不能对此数据对象进行更新操作。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在数据库中有两种基本的锁类型：排它锁（Exclusive Locks，即X锁）和共享锁（Share Locks，即S锁）。当数据对象被加上排它锁时，其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取，但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在实际应用中经常会遇到的与锁相关的异常情况，如由于等待锁事务被挂起、死锁等现象，如果不能及时地解决，将严重影响应用的正常执行，而目前对于该类问题的解决缺乏系统化研究和指导，本文在总结实际经验的基础上，提出了相应的解决方法和具体的分析过程。</p>
<p><strong>Oracle数据库的锁类型</strong></p>
<p>根据保护的对象不同，Oracle数据库锁可以分为以下几大类：DML锁（data locks，数据锁），用于保护数据的完整性；DDL锁（dictionary locks，字典锁），用于保护数据库对象的结构，如表、索引等的结构定义；内部锁和闩（internal locks and latches），保护数据库的内部结构。</p>
<p>DML锁的目的在于保证并发情况下的数据完整性，本文主要讨论DML锁。在Oracle数据库中，DML锁主要包括TM锁和TX锁，其中TM锁称为表级锁，TX锁称为事务锁或行级锁。</p>
<p>当Oracle执行DML语句时，系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后，系统再自动申请TX类型的锁，并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志，而只需检查TM锁模式的相容性即可，大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式，在数据库中用0－6来表示。不同的SQL操作产生不同类型的TM锁。如表1所示。</p>
<p>在数据行上只有X锁（排他锁）。在 Oracle数据库中，当一个事务首次发起一个DML语句时就获得一个TX锁，该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时，第一个会话在该条记录上加锁，其他的会话处于等待状态。当第一个会话提交后，TX锁被释放，其他会话才可以加锁。</p>
<p>当Oracle数据库发生TX锁等待时，如果不及时处理常常会引起Oracle数据库挂起，或导致死锁的发生，产生ORA-60的错误。这些现象都会对实际应用产生极大的危害，如长时间未响应，大量事务失败等。</p>
<p><br />
<br />
<br />
<span style="color: #ff0000">现在概括总结一下:<br />
</p>
<p class="MsoNormalIndent" style="margin: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过具有意向锁的多粒度封锁机制进行并发控制，保证数据的一致性。其</span><span lang="EN-US"><font face="Times New Roman">DML</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">锁（数据锁）分为两个层次（粒度）：即表级和行级。通常的</span><span lang="EN-US"><font face="Times New Roman">DML</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作在表级获得的只是意向锁（</span><span lang="EN-US"><font face="Times New Roman">RS</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</span><span lang="EN-US"><font face="Times New Roman">RX</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），其真正的封锁粒度还是在行级；另外，在</span><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库中，单纯地读数据（</span><span lang="EN-US"><font face="Times New Roman">SELECT</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）并不加锁，这些都极大地提高了系统的并发程度。</span></font></p>
<p class="MsoNormalIndent" style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在支持高并发度的同时，</span><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">利用意向锁及数据行上加锁标志位等设计技巧，减小了</span><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">维护行级锁的开销，使其在数据库并发控制方面有着明显的优势。</span></font></p>
<p><br />
<br />
<br />
在Oracle数据库并发环境下，对于表，既要保护其数据，又要保护其结构（结构信息存储在数据字典中），很自然，针对这两种保护要求，就有了两种类型（Type）的锁：保护数据的锁我们叫数据锁（DML locks或data locks），保护结构的我们叫字典锁（DDL locks或dictionary locks）。<br />
<br />
对于数据锁，为了适应不同事务的不同要求，提供两个层次（粒度）的锁，即表级锁（Table Locks ，TM）与行级锁（Row Locks ，TX）。<br />
在这两个层次上，经典的上锁的方式（Mode）有两种，即共享锁（S锁）与排它锁（X锁）。<br />
<br />
为了方便地进行锁冲突的检测，希望在表（上）级能够标识行（下）级加锁的情况，这就引入了&#8220;意向锁&#8221;（intention lock mode）的概念。根据在行级要加S锁或X锁的不同，在表级相应的就有两种意向锁，即：如果事务要在行级获得S锁，它需要首先在表级获得意向共享锁（Intent Share Lock,IS锁）；如果事务要在行级获得X锁，它需要首先在表级获得意向排它锁（Intent Exclusive Lock,IX锁）。这两种意向锁与经典的S锁、X锁组合，还会产生一种新的锁：共享意向排它锁（Share Intent Exclusive Lock,SIX锁），它表示持有该锁的事务在表级加了传统的共享锁（S锁），同时该事务还将对表中的某些行加排它锁（X锁）。<br />
<br />
这样，在表级数据锁的加锁方式就有了5种：即S、X、IS、IX、SIX。<br />
在Oracle中，与IS对应的锁叫做Row Share Table Locks (RS)或subshare table lock, SS，它可以通过SELECT ... FOR UPDATE语句获得，但需要注意的是，这个语句在行级获得的也是排它锁，即如果两个SELECT ... FOR UPDATE语句要选定同一行，则后面的事务将被阻塞，这是与上面一般意义的定义有所不同，这时RS锁可以理解为持有该锁的事务将要修改选定的某些行。<br />
<br />
在Oracle中，与IX对应的锁叫做Row Exclusive Table Locks (RX)或subexclusive table lock, SX，它可以通过INSERT/UPDATE/DELETE语句获得，它表征持有该锁的事务已经修改了表中的某些行。<br />
<br />
在Oracle中，与SIX对应的锁叫做Share Row Exclusive Table Locks (SRX)或sshare-subexclusive table lock, SSX。<br />
<br />
这样，Oracle对表级数据锁的加锁方式就有：即S、X、RS、RX、SRX等5种；而在行级只有X锁。<br />
<br />
在Oracle中，对于字典锁，也有共享与排它之分：Share DDL Locks与Exclusive DDL Locks。对于要获得Exclusive DDL Locks的DDL操作（如ALTER、DROP等），它还必须要获得该表排它的数据锁，这样如果在某个表上有未提交的事务（即该表有某种类型的表级锁），其它SESSION提出的DROP表的操作就不会成功，因为它要向表施加X锁，与表上已有的锁不相容。<br />
所以说，表级的数据锁既能防止与之冲突的DML操作，也能防止与之冲突的DDL操作，但不能因此就把表级的数据锁与字典锁混为一谈。</span><br />
<br />
<br />
<table bordercolor="#666666" height="194" cellspacing="0" cellpadding="1" width="456" bgcolor="#ffffff" border="1">
    <tbody>
        <tr>
            <td colspan="4"><span class="style1">表1 Oracle的TM锁类型</span></td>
        </tr>
        <tr>
            <td width="40"><span class="style4">锁模式</span></td>
            <td width="84"><span class="style4">锁描述</span></td>
            <td width="101"><span class="style4">解释</span></td>
            <td width="213"><span class="style4">SQL操作</span></td>
        </tr>
        <tr>
            <td><span class="style4">0</span></td>
            <td><span class="style4">none</span></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td><span class="style4">1</span></td>
            <td><span class="style4">NULL</span></td>
            <td><span class="style4">空</span></td>
            <td><span class="style4">Select</span></td>
        </tr>
        <tr>
            <td><span class="style4">2</span></td>
            <td><span class="style4">SS(Row-S)</span></td>
            <td><span class="style4">行级共享锁，其他对象只能查询这些数据行</span></td>
            <td>
            <p class="style4">Select for update、Lock for update、Lock row share</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4">3</span></td>
            <td><span class="style4">SX(Row-X)</span></td>
            <td><span class="style4">行级排它锁，在提交前不允许做DML操作</span></td>
            <td>
            <p class="style4">Insert、Update、Delete、Lock row share</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4">4</span></td>
            <td><span class="style4">S(Share)</span></td>
            <td><span class="style4">共享锁</span></td>
            <td><span class="style4">Create index、Lock share</span></td>
        </tr>
        <tr>
            <td><span class="style4">5</span></td>
            <td><span class="style4">SSX(S/Row-X)</span></td>
            <td><span class="style4">共享行级排它锁</span></td>
            <td><span class="style4">Lock share row exclusive</span></td>
        </tr>
        <tr>
            <td><span class="style4">6</span></td>
            <td><span class="style4">X(Exclusive)</span></td>
            <td><span class="style4">排它锁</span></td>
            <td>
            <p class="style4">Alter table、Drop able、Drop index、Truncate table 、Lock exclusive</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p>&nbsp;</p>
<p>
<table bordercolor="#666666" height="194" cellspacing="0" cellpadding="1" width="577" bgcolor="#ffffff" border="1">
    <tbody>
        <tr>
            <td colspan="3"><span class="style1">表2 数据字典视图说明</span></td>
        </tr>
        <tr>
            <td width="105"><span class="style4">视图名</span></td>
            <td width="82"><span class="style4">描述</span></td>
            <td width="376"><span class="style4">主要字段说明</span></td>
        </tr>
        <tr>
            <td><span class="style4">v$session</span></td>
            <td><span class="style4">查询会话的信息和锁的信息。</span></td>
            <td>
            <p class="style4">sid,serial#：表示会话信息。</p>
            <p class="style4">program：表示会话的应用程序信息。</p>
            <p class="style4">row_wait_obj#：表示等待的对象。</p>
            <p class="style4">和dba_objects中的object_id相对应。</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4">v$session_wait</span></td>
            <td><span class="style4">查询等待的会话信息。</span></td>
            <td>
            <p class="style4">sid：表示持有锁的会话信息。</p>
            <p class="style4">Seconds_in_wait：表示等待持续的时间信息</p>
            <p class="style4">Event：表示会话等待的事件。</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4">v$lock</span></td>
            <td><span class="style4">列出系统中的所有的锁。</span></td>
            <td>
            <p class="style4">Sid：表示持有锁的会话信息。</p>
            <p class="style4">Type：表示锁的类型。值包括TM和TX等。</p>
            <p class="style4">ID1：表示锁的对象标识。</p>
            <p class="style4">lmode,request：表示会话等待的锁模式的信</p>
            <p class="style4">息。用数字0－6表示，和表1相对应。</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4"><a title="DBA" href="http://soft.zdnet.com.cn/files/list-0-0-49097-1-1.htm">DBA</a>_locks</span></td>
            <td><span class="style4">对v$lock的格式化视图。</span></td>
            <td>
            <p class="style4">Session_id：和v$lock中的Sid对应。</p>
            <p class="style4">Lock_type：和v$lock中的type对应。</p>
            <p class="style4">Lock_ID1： 和v$lock中的ID1对应。</p>
            <p class="style4">Mode_held,mode_requested：和v$lock中</p>
            <p class="style4">的lmode,request相对应。</p>
            </td>
        </tr>
        <tr>
            <td><span class="style4">v$locked_object</span></td>
            <td><span class="style4">只包含DML的锁信息，包括回滚段和会话信息。</span></td>
            <td>
            <p class="style4">Xidusn,xidslot,xidsqn：表示回滚段信息。和</p>
            <p class="style4">v$transaction相关联。</p>
            <p class="style4">Object_id：表示被锁对象标识。</p>
            <p class="style4">Session_id：表示持有锁的会话信息。</p>
            <p class="style4">Locked_mode：表示会话等待的锁模式的信</p>
            <p class="style4">息，和v$lock中的lmode一致。</p>
            </td>
        </tr>
    </tbody>
</table>
<br />
</p>
<img src ="http://www.blogjava.net/sunzhong/aggbug/296308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-09-24 16:33 <a href="http://www.blogjava.net/sunzhong/articles/296308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 动态性能表 v$session &amp; v$process</title><link>http://www.blogjava.net/sunzhong/articles/296288.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Thu, 24 Sep 2009 06:39:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/296288.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/296288.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/296288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/296288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/296288.html</trackback:ping><description><![CDATA[<p><strong><span style="font-size: large"><span style="color: #339966">v$<span class="hilite2">session</span></span></span></strong></p>
<p>&nbsp;</p>
<p><strong>SADDR</strong>: <span class="hilite2">session</span> address</p>
<p>&nbsp;</p>
<p><strong>SID</strong>: <span class="hilite2">session</span> identifier，常用于连接其它列。</p>
<p>&nbsp;</p>
<p><strong>SERIAL#</strong>: sid 会重用，但是同一个sid被重用时，serial#会增加，不会重复。</p>
<p>&nbsp;</p>
<p><strong>AUDSID</strong>: audit <span class="hilite2">session</span> id。可以通过audsid查询当前<span class="hilite2">session</span>的sid。select sid from v$<span class="hilite2">session</span> where audsid=userenv('sessionid');</p>
<p>&nbsp;</p>
<p><strong>PADDR</strong>: process address，关联v$process的addr字段，可以通过这个字段查处当前<span class="hilite2">session</span>对应操作系统的那个进程的id。</p>
<p>&nbsp;</p>
<p><strong>USER#</strong>: <span class="hilite2">session</span>'s user id。等于dba_users中的user_id。<span class="hilite1">Oracle</span>内部进程的user#为0。</p>
<p>&nbsp;</p>
<p><strong>USERNAME</strong>: <span class="hilite2">session</span>'s username。等于dba_users中的username。<span class="hilite1">Oracle</span>内部进程的username为空。</p>
<p>&nbsp;</p>
<p><strong>COMMAND</strong>: <span class="hilite2">session</span>正在执行的SQL Id。1代表create table，3代表select。</p>
<p>&nbsp;</p>
<p><strong>TADDR</strong>: 当前的transaction address。可以用来关联v$transaction的addr字段。</p>
<p>&nbsp;</p>
<p><strong>LOCKWAIT</strong>: 可以通过这个字段查询出当前正在等待的锁的相关信息。sid &amp; lockwait与v$lock中的sid &amp; kaddr相对应。</p>
<p>&nbsp;</p>
<p><strong>STATUS</strong>: 用来判断<span class="hilite2">session</span>状态。Active：正执行SQL语句。Inactive：等待操作。Killed：被标注为删除。</p>
<p>&nbsp;</p>
<p><strong>SERVER</strong>: server type (dedicated or shared)</p>
<p>&nbsp;</p>
<p><strong>SCHEMA#</strong>: schema user id。<span class="hilite1">Oracle</span>内部进程的schema#为0。</p>
<p>&nbsp;</p>
<p><strong>SCHEMANAME</strong>: schema username。<span class="hilite1">Oracle</span>内部进程的schemaname为sys。</p>
<p>&nbsp;</p>
<p><strong>OSUSER</strong>: 客户端操作系统用户名。</p>
<p>&nbsp;</p>
<p><strong>PROCESS</strong>: 客户端process id。</p>
<p>&nbsp;</p>
<p><strong>MACHINE</strong>: 客户端machine name。</p>
<p>&nbsp;</p>
<p><strong>TERMINAL</strong>: 客户端执行的terminal name。</p>
<p>&nbsp;</p>
<p><strong>PROGRAM</strong>: 客户端应用程序。比如<span class="hilite1">ORACLE</span>.EXE (PMON)或者sqlplus.exe</p>
<p>&nbsp;</p>
<p><strong>TYPE</strong>: <span class="hilite2">session</span> type (background or user)</p>
<p>&nbsp;</p>
<p><strong>SQL_ADDRESS, SQL_HASH_VALUE, SQL_ID, SQL_CHILD_NUMBER</strong>: <span class="hilite2">session</span>正在执行的sql statement，和v$sql中的address, hash_value, sql_id, child_number相对应。</p>
<p>&nbsp;</p>
<p><strong>PREV_SQL_ADDR, PREV_HASH_VALUE, PREV_SQL_ID, PREV_CHILD_NUMBER</strong>: 上一次执行的sql statement。</p>
<p>&nbsp;</p>
<p><strong>MODULE, MODULE_HASH, ACTION, ACTION_HASH, CLIENT_INFO</strong>: 应用通过DBMS_APPLICATION_INFO设置的一些信息。</p>
<p>&nbsp;</p>
<p><strong>FIXED_TABLE_SEQUENCE</strong>: 当<span class="hilite2">session</span>完成一个user call后就会增加的一个数值，也就是说，如果<span class="hilite2">session</span> inactive，它就不会增加。因此可以根据此字段的值变化来监控某个时间点以来的<span class="hilite2">session</span>的性能情况。例如，一个小时以前，某个<span class="hilite2">session</span>的FIXED_TABLE_SEQUENCE是10000，而现在是20000，则表明一个小时内其user call比较频繁，可以重点关注此<span class="hilite2">session</span>的performance statistics。</p>
<p>&nbsp;</p>
<p><strong>ROW_WAIT_OBJ#</strong>: 被锁定行所在table的object_id。和dba_objects中的object_id关联可以得到被锁定的table name。</p>
<p>&nbsp;</p>
<p><strong>ROW_WAIT_FILE#</strong>: 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。</p>
<p>&nbsp;</p>
<p><strong>ROW_WAIT_BLOCK#</strong>: Identifier for the block containing the row specified in ROW_WAIT_ROW#</p>
<p>&nbsp;</p>
<p><strong>ROW_WAIT_ROW#</strong>: <span class="hilite2">session</span>当前正在等待的被锁定的行。</p>
<p>&nbsp;</p>
<p><strong>LOGON_TIME</strong>: <span class="hilite2">session</span> logon time</p>
<p>&nbsp;</p>
<p><span style="font-weight: bold; font-size: 18px; color: #339966">v$process</span></p>
<p>&nbsp;</p>
<p><strong>ADDR</strong>: process address。可以和v$<span class="hilite2">session</span>的paddr字段关联。</p>
<p>&nbsp;</p>
<p><strong>PID</strong>: <span class="hilite1">Oracle</span>进程identifier。</p>
<p>&nbsp;</p>
<p><strong>SPID</strong>: 操作系统进程identifier。</p>
<p>&nbsp;</p>
<p><strong>USERNAME</strong>: 操作系统进程的用户名。并非<span class="hilite1">Oracle</span>用户名。</p>
<p>&nbsp;</p>
<p><span style="font-weight: bold">SERIAL#:</span>: process serial number。</p>
<p>&nbsp;</p>
<p><strong>TERMINAL</strong>: 操作系统terminal identifier(e.g., computer name)。</p>
<p>&nbsp;</p>
<p><strong>PROGRAM</strong>: 进程正在执行的程序(e.g., <span class="hilite1">ORACLE</span>.EXE (ARC0))，和v$<span class="hilite2">session</span>中的program类似。</p>
<p>&nbsp;</p>
<p><strong>BACKGROUND</strong>: 1代表<span class="hilite1">oracle</span> background process，null代表normal process。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>查看当前用户的sid和serial#:</strong></p>
<p>select sid, serial#, status from v$<span class="hilite2">session</span> where audsid=userenv('sessionid');</p>
<p>&nbsp;</p>
<p><strong>查看当前用户的spid:</strong></p>
<p>select spid from v$process p, v$<span class="hilite2">session</span> s where s.audsid=userenv('sessionid') and s.paddr=p.addr;</p>
<p>select spid from v$process p join v$<span class="hilite2">session</span> s on p.addr=s.paddr and s.audsid=userenv('sessionid');</p>
<p>&nbsp;</p>
<p><strong>查看当前用户的trace file路径:</strong></p>
<p>select p.value || '\' || t.instance || '_ora_' || ltrim(to_char(p.spid,'fm99999')) || '.trc'</p>
<p>&nbsp;&nbsp; &nbsp;from v$process p, v$<span class="hilite2">session</span> s, v$parameter p, v$thread t</p>
<p>&nbsp;&nbsp; &nbsp;where p.addr = s.paddr and s.audsid = userenv('sessionid') and p.name = 'user_dump_dest';</p>
<p>&nbsp;</p>
<p><strong>已知spid，查看当前正在执行或最近一次执行的语句:</strong></p>
<p>select /*+ ordered */ sql_text from v$sqltext sql</p>
<p>&nbsp;&nbsp; &nbsp;where (sql.hash_value, sql.address) in (</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;select decode(sql_hash_value, 0, prev_hash_value, sql_hash_value), decode(sql_hash_value, 0, prev_sql_addr, sql_address)</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;from v$<span class="hilite2">session</span> s where s.paddr = (select addr from v$process p where p.spid = to_number('&amp;pid')))</p>
<p>&nbsp;&nbsp; &nbsp;order by piece asc;</p>
<p>&nbsp;</p>
<p><strong>查看锁和等待:</strong></p>
<p>col user_name format a10</p>
<p>col owner format a10</p>
<p>col object_name format a15</p>
<p>col sid format 999999</p>
<p>col serial# format 999999</p>
<p>col spid format a6</p>
<p>select /*+ rule */ lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username user_name,</p>
<p>&nbsp;&nbsp; &nbsp;o.owner, o.object_name, o.object_type, s.sid, s.serial#, p.spid</p>
<p>&nbsp;&nbsp; &nbsp;from v$locked_object l, dba_objects o, v$<span class="hilite2">session</span> s, v$process p</p>
<p>&nbsp;&nbsp; &nbsp;where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr</p>
<p>&nbsp;&nbsp; &nbsp;order by o.object_id, xidusn desc;</p>
<img src ="http://www.blogjava.net/sunzhong/aggbug/296288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-09-24 14:39 <a href="http://www.blogjava.net/sunzhong/articles/296288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游标属性</title><link>http://www.blogjava.net/sunzhong/articles/289164.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Thu, 30 Jul 2009 11:03:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/289164.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/289164.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/289164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/289164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/289164.html</trackback:ping><description><![CDATA[<br />
　　当执行一条DML语句后，DML语句的结果保存在四个游标属性中，这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时，PL/SQL打开一个内建游标并处理结果，游标是维护查询结果的内存中的一个区域，游标在运行DML语句时打开，完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔值，SQL%ROWCOUNT是整数值。<br />
<br />
　　SQL%FOUND和SQL%NOTFOUND<br />
<br />
　　在执行任何DML语句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行DML语句后，SQL%FOUND的属性值将是：<br />
<br />
　　. TRUE :INSERT<br />
<br />
　　. TRUE :DELETE和UPDATE，至少有一行被DELETE或UPDATE.<br />
<br />
　　. TRUE :SELECT INTO至少返回一行<br />
<br />
　　当SQL%FOUND为TRUE时,SQL%NOTFOUND为FALSE。<br />
<br />
　　SQL%ROWCOUNT<br />
<br />
　　在执行任何DML语句之前，SQL%ROWCOUNT的值都是NULL,对于INSERT,DELETE,UPDATE来说,影响多少行,SQL%ROWCOUNT的值为多少,对于SELECT INTO语句，如果执行成功，SQL%ROWCOUNT的值为1,如果没有成功，SQL%ROWCOUNT的值为0，同时产生一个异常NO_DATA_FOUND.<br />
<br />
　　SQL%ISOPEN<br />
<br />
　　SQL%ISOPEN是一个布尔值，如果游标打开，则为TRUE, 如果游标关闭，则为FALSE.对于隐式游标而言SQL%ISOPEN总是FALSE，这是因为隐式游标在DML语句执行时打开，结束时就立即关闭。<br />
<img src ="http://www.blogjava.net/sunzhong/aggbug/289164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-07-30 19:03 <a href="http://www.blogjava.net/sunzhong/articles/289164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>user_constraints 和user_cons_columns表得作用及其联系</title><link>http://www.blogjava.net/sunzhong/articles/289139.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Thu, 30 Jul 2009 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/289139.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/289139.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/289139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/289139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/289139.html</trackback:ping><description><![CDATA[desc&nbsp;&nbsp;后发现&nbsp;<br />
&nbsp;user_constraints是表约束的视图,描述的是约束类型(constraint_type)是什么,属于哪些表(table_name),如果约束的类型为R(外键)的话,那么r_constraint_name字段存放的就是被引用主表中的主键约束名。&nbsp;&nbsp;&nbsp;<br />
&nbsp;user_cons_columns是表约束字段的视图,说明表中的和约束相关的列参与了哪些约束。这些约束有主键约束,外键约束,索引约束.<br />
&nbsp; 两者可以通过(owner,constraint_name,table_name)关联 <br />
<br />
<p>select <br />
a.owner 外键拥有者, <br />
a.table_name 外键表, <br />
substr(c.column_name,1,127) 外键列, <br />
b.owner 主键拥有者, <br />
b.table_name 主键表, <br />
substr(d.column_name,1,127) 主键列 <br />
from <br />
user_constraints a, <br />
user_constraints b, <br />
user_cons_columns c, <br />
user_cons_columns d <br />
where <br />
&nbsp;&nbsp;&nbsp; a.r_constraint_name=b.constraint_name <br />
and a.constraint_type='R' <br />
and b.constraint_type='P' <br />
and a.r_owner=b.owner <br />
and a.constraint_name=c.constraint_name <br />
and b.constraint_name=d.constraint_name <br />
and a.owner=c.owner <br />
and a.table_name=c.table_name <br />
and b.owner=d.owner <br />
and b.table_name=d.table_name </p>
<p>数据字典表列说明：</p>
<p>desc user_constraints</p>
<p>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Comments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
-----------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------------------------------------------------------------------------- <br />
OWNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Owner of the table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
CONSTRAINT_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name associated with constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
CONSTRAINT_TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type of constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
TABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name associated with table with constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
SEARCH_CONDITION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text of search condition for table check&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
R_OWNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owner of table used in referential constraint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
R_CONSTRAINT_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of unique constraint definition for referenced&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
DELETE_RULE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The delete rule for a referential constraint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enforcement status of constraint -&nbsp; ENABLED or DISABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
DEFERRABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the constraint deferrable - DEFERRABLE or NOT DEFERRABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
DEFERRED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Is the constraint deferred by default -&nbsp; DEFERRED or IMMEDIATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
VALIDATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Was this constraint system validated? -&nbsp; VALIDATED or NOT VALIDATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
GENERATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Was the constraint name system generated? -&nbsp; GENERATED NAME or USER NAME&nbsp;&nbsp;&nbsp; <br />
BAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creating this constraint should give ORA-02436.&nbsp; Rewrite it before 2000 AD. <br />
RELY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If set, this flag will be used in optimizer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
LAST_CHANGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The date when this column was last enabled or disabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
INDEX_OWNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The owner of the index used by the constraint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
INDEX_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index used by the constraint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
INVALID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
VIEW_RELATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
desc user_cons_columns;</p>
<p><br />
Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
--------------- -------------- -------- ------- ------------------------------------------------------------------------------------------------ <br />
OWNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Owner of the constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
CONSTRAINT_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name associated with the constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
TABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name associated with table with constraint definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
COLUMN_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name associated with column or attribute of object column specified in the constraint definition <br />
POSITION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Original position of column or attribute in definition&nbsp;&nbsp; </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/sunzhong/aggbug/289139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-07-30 16:53 <a href="http://www.blogjava.net/sunzhong/articles/289139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何删除字符串中所有的空格</title><link>http://www.blogjava.net/sunzhong/articles/288251.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Fri, 24 Jul 2009 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/288251.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/288251.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/288251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/288251.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/288251.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="message5425420">办法1
<div class="t_msgfont" id="message5425264">update table<br />
set x=replace(x,' ','');</div>
<br />
办法2<br />
oracle 10g可以试一下下面的语句<br />
update table t set col1 = <br />
&nbsp;&nbsp;REGEXP_REPLACE(col1,&nbsp;&nbsp;'( ){1,}', '') "REGEXP_REPLACE"</div>
 <img src ="http://www.blogjava.net/sunzhong/aggbug/288251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-07-24 18:34 <a href="http://www.blogjava.net/sunzhong/articles/288251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速获取ORACLE表字段的清单</title><link>http://www.blogjava.net/sunzhong/articles/284598.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Mon, 29 Jun 2009 06:15:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/284598.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/284598.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/284598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/284598.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/284598.html</trackback:ping><description><![CDATA[<pre id="prestr">可以很方便的查出表中的所有字段，开发时可用上，免得一个一个字段的书写。
Select  max(SYS_CONNECT_BY_PATH(COLUMN_NAME, ', '))
From (select A.COLUMN_NAME,A.TABLE_NAME, ROWNUM AS ROWNO
from USER_TAB_COLUMNS A
where TABLE_NAME = '表名称'
ORDER BY A.COLUMN_ID)
start with ROWNO = 1
connect by ROWNO = rownum;  </pre>
 <img src ="http://www.blogjava.net/sunzhong/aggbug/284598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-06-29 14:15 <a href="http://www.blogjava.net/sunzhong/articles/284598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>