天天看点

Oracle SQL Developer 的一个Bug

<a href="http://blog.51cto.com/maclean/1277141#">?</a>

<code>--------------------------------------------------------</code>

<code>--  File created - Monday-August-30-2010</code>

<code>--  DDL for Table BONUS</code>

<code>  </code><code>CREATE</code> <code>TABLE</code> <code>"BONUS"</code>

<code>   </code><code>(    </code><code>"ENAME"</code> <code>VARCHAR2(10),</code>

<code>    </code><code>"JOB"</code> <code>VARCHAR2(9),</code>

<code>    </code><code>"SAL"</code> <code>NUMBER,</code>

<code>    </code><code>"COMM"</code> <code>NUMBER</code>

<code>   </code><code>) ;</code>

<code>--  DDL for Table DEPT</code>

<code>  </code><code>CREATE</code> <code>TABLE</code> <code>"DEPT"</code>

<code>   </code><code>(    </code><code>"DEPTNO"</code> <code>NUMBER(2,0),</code>

<code>    </code><code>"DNAME"</code> <code>VARCHAR2(14),</code>

<code>    </code><code>"LOC"</code> <code>VARCHAR2(13)</code>

<code>--  DDL for Table EMP</code>

<code>  </code><code>CREATE</code> <code>TABLE</code> <code>"EMP"</code>

<code>   </code><code>(    </code><code>"EMPNO"</code> <code>NUMBER(4,0),</code>

<code>    </code><code>"ENAME"</code> <code>VARCHAR2(10),</code>

<code>    </code><code>"MGR"</code> <code>NUMBER(4,0),</code>

<code>    </code><code>"HIREDATE"</code> <code>DATE</code><code>,</code>

<code>    </code><code>"SAL"</code> <code>NUMBER(7,2),</code>

<code>    </code><code>"COMM"</code> <code>NUMBER(7,2),</code>

<code>    </code><code>"DEPTNO"</code> <code>NUMBER(2,0)</code>

<code>--  DDL for Table SALGRADE</code>

<code>  </code><code>CREATE</code> <code>TABLE</code> <code>"SALGRADE"</code>

<code>   </code><code>(    </code><code>"GRADE"</code> <code>NUMBER,</code>

<code>    </code><code>"LOSAL"</code> <code>NUMBER,</code>

<code>    </code><code>"HISAL"</code> <code>NUMBER</code>

<code>--  DDL for Index PK_DEPT</code>

<code>  </code><code>CREATE</code> <code>UNIQUE</code> <code>INDEX</code> <code>"PK_DEPT"</code> <code>ON</code> <code>"DEPT"</code> <code>(</code><code>"DEPTNO"</code><code>)   ;</code>

<code>--  DDL for Index PK_EMP</code>

<code>  </code><code>CREATE</code> <code>UNIQUE</code> <code>INDEX</code> <code>"PK_EMP"</code> <code>ON</code> <code>"EMP"</code> <code>(</code><code>"EMPNO"</code><code>)   ;</code>

以上SQL中未给出PK和FK约束的ddl信息。 如果使用scott用户登录数据库,导出自身schema的table,index,constraint定义信息时:

<code>--  Constraints for Table EMP</code>

<code>  </code><code>ALTER</code> <code>TABLE</code> <code>"EMP"</code> <code>ADD</code> <code>CONSTRAINT</code> <code>"PK_EMP"</code> <code>PRIMARY</code> <code>KEY</code> <code>(</code><code>"EMPNO"</code><code>) ENABLE;</code>

<code>--  Constraints for Table DEPT</code>

<code>  </code><code>ALTER</code> <code>TABLE</code> <code>"DEPT"</code> <code>ADD</code> <code>CONSTRAINT</code> <code>"PK_DEPT"</code> <code>PRIMARY</code> <code>KEY</code> <code>(</code><code>"DEPTNO"</code><code>) ENABLE;</code>

<code>  </code><code>CREATE</code> <code>UNIQUE</code> <code>INDEX</code> <code>"PK_DEPT"</code> <code>ON</code> <code>"DEPT"</code> <code>(</code><code>"DEPTNO"</code><code>)  ;</code>

<code>--  Ref Constraints for Table EMP</code>

<code>  </code><code>ALTER</code> <code>TABLE</code> <code>"EMP"</code> <code>ADD</code> <code>CONSTRAINT</code> <code>"FK_DEPTNO"</code> <code>FOREIGN</code> <code>KEY</code> <code>(</code><code>"DEPTNO"</code><code>)</code>

<code>      </code><code>REFERENCES</code> <code>"DEPT"</code> <code>(</code><code>"DEPTNO"</code><code>) ENABLE;</code>

Oracle SQL developer给出了正确的SQL,包含FK和PK约束。 这个Bug在8月(2010 Aug)被确认将影响此前所有版本的Oracle SQL developer。

本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277141