用 pdsql 管理和部署 IBM Rational ClearQuest 数据库

发表于:2008-4-02 16:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

        以 SQL_ 开头的数据类型是 ClearQuest 用来统一不同数据库厂商的数据类型,例如 SQL_VARCHAR 可以代替 VARCHAR (DB2/SQL Server) 和 VARCHAR2 (Oracle), SQL_DECIMAL 可以代替 DECIMAL (DB2/SQL Server)、和 NUMBER (Oracle),SQL_LONGVARCHAR 可以代替 CLOB (DB2/Oracle) 和 text (SQL Server) 等等,这样就方便了客户不用顾虑不同数据库厂商之间的差异了。

columns、indices、primary_keys 和 foreign_keys 分别是输出当前用户所拥有指定表的字段信息、索引信息、主键约束信息和外键约束信息。例如:

>columns defect;
RATL_MASTERSHIP                         INTEGER (10,0)
DBID                                    INTEGER (10,0)
IS_ACTIVE                               INTEGER (10,0)
ID                                      VARCHAR (13,0)
STATE                                   INTEGER (10,0)
VERSION                                 INTEGER (10,0)
LOCK_VERSION                            INTEGER (10,0)
LOCKED_BY                               INTEGER (10,0)
IS_DUPLICATE                            INTEGER (10,0)
UNDUPLICATE_STATE                       VARCHAR (50,0)
HEADLINE                                VARCHAR (125,0)
DESCRIPTION                             CLOB (104857600,0)
PRIORITY                                VARCHAR (30,0)
SEVERITY                                VARCHAR (30,0)
SUBMITTER                               INTEGER (10,0)
SUBMIT_DATE                             TIMESTAMP (26,6)
OWNER                                   INTEGER (10,0)
OLD_ID                                  VARCHAR (50,0)
KEYWORDS                                CLOB (104857600,0)
SYMPTOMS                                CLOB (104857600,0)
NOTE_ENTRY                              CLOB (104857600,0)
NOTES_LOG                               CLOB (104857600,0)
RESOLUTION                              VARCHAR (50,0)
PROJECT                                 INTEGER (10,0)
CUSTOMER_SEVERITY                       VARCHAR (50,0)

>indices defect;
Unique              Index Name          Column
Y                   DEFECT_UC           DBID
Y                   DEFECT_UK           ID
N                   IX_16777254         RATL_MASTERSHIP
N                   IX_16777314         STATE
N                   IX_16777325         SUBMITTER
N                   IX_16777327         OWNER
N                   IX_16777924         PROJECT

>primary_keys defect;
Key                 Name                Column Sequence
DEFECT_PK           DBID                1

>foreign_keys defect;
FK Column           PK                  Table PK Column
RATL_MASTERSHIP     RATL_REPLICAS       DBID
UCM_PROJECT         UCM_PROJECT         DBID
SUBMITTER           USERS               DBID
OWNER               USERS               DBID
 

3 pdsql 高级功能

        有了上述 pdsql 的基本功能,就可以满足普通 ClearQuest 数据库的管理需求了。pdsql 还有一些高级功能,如数据库的清理、表结构的维护、大对象(LOB)字段的支持、ClearQuest 记录中附件的转储等等。

本章介绍 pdsql 的高级特殊命令和对不同厂商数据库环境的部署。

3.1 pdsql 特殊命令

1. 猛烈魔法 (nuke_all_tables):nuke_all_tables 命令可以删除所有当前用户可访问的表和所有数据,请慎重使用,确认数据都没用或已经有好的备份。用法如下:

>nuke_all_tables;
 

2. SQL Server 数据库特有创建数据库和增加数据库属主的命令:create_database 和 add_as_dbo。用法如下:

>create_database dbname device size;
>add_as_dbo loginname;
 

        关于这两个命令的示例参考下面 3.4 用 pdsql 为 ClearQuest 部署 SQL Server 数据库环境。

3. 映射 id 命令 map_ids,有些数据库不支持嵌套 select 的 update 语句,此命令就用来实现统一的“update set x = (select..)”语句。map_ids 命令用法为:

>map_ids test_table field maptable
 


        要用 map_ids 命令,首先创建一个临时映射表,表字段 old 和 new 分别对应旧值和新值 , 表记录就是一组新旧值映射表。

4. 断言语句 assert,此命令将会生成一个条件检查语句,然后执行,如果不满足就抛异常信息(Exception)。assert 命令语法为:

>assert string_equal table field value;
 

        检查表中指定的字符串字段值是否和想要的值相等,如果不相等就抛包含表名、该字段名和实际值等异常信息。

>assert integer_equal table field value;
 

        检查表中指定的整型字段值是否和想要的值相等,如果不相等就抛包含表名、该字段名和实际值等异常信息。

>assert empty table;
 

        检查表是否为空,如果不为空就抛包含表名和实际记录数的异常信息。

>assert unique_index name on table (fields, field);
 

        检查是否可以在指定的字段上创建唯一约束索引,如果不能创建就抛包含表名和该字段的异常信息。

>assert unused_value table field value;
 

        检查表中指定字段中是否有和想比较的值相等的记录,如果有就抛包含表名、该字段名、比较的值和记录数等异常信息。

>assert unused_state_value table field value stringval;
 

        检查表中指定字段中是否有和想比较的值相等的记录,如果有就抛包含表名、该字段名、指定的状态值和记录数等异常信息。

>assert undefined_column table column;
 

        检查指定的字段是否包含在表中,如果不在就抛包含表名和该字段的异常信息。

>assert undefined_table table;
 

        检查是否当前用户没有定义指定的表,如果定义了就抛包含表名的异常信息。

>assert defined_table table;
 

        检查是否当前用户定义指定了的表,如果没有定义就抛包含表名的异常信息。

>assert alter_table table;
 

        检查是否可对指定的表进行改变操作,可用来判断是否该表被锁了,如果该表不能被执行改变操作就抛异常信息。

5. 统一的表删除命令 drop_table:

>drop_table test_table;

精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号