PL/SQL Developer View SQL功能的一个Bug
2010-10-19 13:10
423 查看
很多朋友都习惯使用PL/SQL Developer图形化工具的快捷View SQL功能获取数据库中对象的创建DDL语句信息,这种方式的优点是要比使用DBMS_METADATA.GET_DDL函数方便许多,但使用View SQL功能却有着潜在的隐患,如下例:
接着在PL/SQL DEVELOPER中CTRL+左键点击TV可以进入TV对象的属性界面,点击View SQL可以看到PL/SQL DEVELOPER生成的DDL语句:
不过幸运的是PLSQL DEVELOPER工具也包含了DBMS_METADATA->DDL选项可以调用该函数返回准确的DDL语句:
本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1277578
SQL> drop table tv; Table dropped. SQL> create table tv (t1 int) tablespace users parallel; Table created. /* 为tv表指定了parallel为DEFAULT DEGREE */
接着在PL/SQL DEVELOPER中CTRL+左键点击TV可以进入TV对象的属性界面,点击View SQL可以看到PL/SQL DEVELOPER生成的DDL语句:
-- Create table create table TV ( T1 INTEGER ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); /* 可以看到PLSQL DEVELOPER生成的DDL语句未包含Parallel属性!*/ /* 利用DBMS_METADATA.GET_DDL可以获取到完整的DDL语句 */ SQL> set serveroutput on; SQL> declare res varchar2(500); begin res := dbms_metadata.get_ddl(object_type => 'TABLE', name => 'TV', schema => 'SYS'); dbms_output.put_line(res); end; / CREATE TABLE "SYS"."TV" ("T1" NUMBER(*,0)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" PARALLEL /* 不仅于parallel属性,在PL/SQL Developer Version 8.0.0.1480中生成的建表DDL语句也不包含NOLOGGING属性 */ SQL> alter table tv nologging; Table altered. /*View SQL功能生成的DDL语句 */ -- Create table create table TV ( T1 INTEGER ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ) compress; /* 使用DBMS_METADATA.GET_DDL可以正确表达NOLOGGING属性 */ CREATE TABLE "SYS"."TV" ( "T1" NUMBER(*,0) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS NOLOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" PARALLEL
不过幸运的是PLSQL DEVELOPER工具也包含了DBMS_METADATA->DDL选项可以调用该函数返回准确的DDL语句:
本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1277578
相关文章推荐
- PL/SQL Developer View SQL功能的一个Bug
- pl/sql developer的一个BUG
- 【转】PL/SQL Developer各个窗口的功能
- PL/SQL Developer各个Window的功能
- pl/sql developer 表名自动提示功能
- PL/SQL DEVELOPER 6对象比较功能说明(原创)
- pl/sql developer的几个比较炫的功能
- 2008-3-25号发布的PL/SQL Developer 7.1.5版本,存在几个严重BUG
- 一个机器上同时安装有两个版本oracle时的pl/sql developer设置
- Oracle:PL/SQL Developer 创建一个新用户
- PL/SQL Developer遇到一个奇葩无效标识符问题随记
- 在PL/SQL Developer里设置Oracle数据库的字段自动递增功能
- 在PL/SQL Developer里设置Oracle数据库的字段自动递增功能
- PL/SQL Developer各个窗口的功能
- Oracle SQL Developer 的一个Bug
- Oracle SQL Developer 的一个Bug
- PL/SQL Developer工具登陆一个新创建的用户进行查询时报Dynamic Performance Tables not accessible
- PL/SQL Developer的bug?关于权限的问题
- 一个机器上同时安装有两个版本oracle时的pl/sql developer的设置
- 利用PL/SQL Developer进行数据收集(基础版)