当前位置: 代码迷 >> Informix >> 高分求一有关问题:哪位高手知道informix里的对象语法结构存何处
  详细解决方案

高分求一有关问题:哪位高手知道informix里的对象语法结构存何处

热度:3519   发布时间:2013-02-26 00:00:00.0
高分求一问题:谁知道informix里的对象语法结构存何处?
谁知道informix里的对象语法结构存何处?
----主要是触发器的源代码?
------最佳解决方案--------------------------------------------------------
select * from systrigbody;
------其他解决方案--------------------------------------------------------
获得数据库对象的方法探讨(2) 
角色
存储角色的表/视图有:

DBA_ROLES

描述数据库中所有角色。


取得角色方法:

SELECT ROLE FROM SYS.DBA_ROLES;

表空间
SELECT TABLESPACE_NAME FROM SYS.DBA_TABLESPACES;

数据文件
SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME FROM SYS.DBA_DATA_FILES;

数据库连接
存储数据库连接的系统表/视图主要有:

DBA_LINKS
描述数据库中所有的连接的属性。
ALL_LINKS
描述数据库中所有的用户可访问的连接的属性。
USER_LINKS

描述数据库中当前用户的连接属性。


因此,可以从DBA_DB_LINKS中取得连接:
SELECT * FROM SYS.DBA_DB_LINKS;


同义词
SELECT * FROM SYS.ALL_SYNONYMS WHERE TABLE_OWNER = 'DBAUDIT';

程序包
取得程序包可以用:

SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE';

取得隶属于某个用户的程序包可以用:

SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE' AND OWNER = 'DBAUDIT';


取得程序包内容可以用:

SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = 'XXX' AND TYPE = 'PACKAGE';

程序包体
取得程序包体可以用:

SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE BODY';

取得隶属于某个用户的程序包可以用:

SELECT OBJECT_NAME FROM SYS.ALL_OBJECTS WHERE OBJECT_TYPE = 'PACKAGE BODY ' AND OWNER = 'DBAUDIT';


取得程序包内容可以用:

SELECT TEXT FROM SYS.ALL_SOURCE WHERE NAME = 'XXX' AND TYPE = 'PACKAGE BODY ';


暂不扫描。

高级队列
暂不扫描。

序列
暂不扫描。

数组类型
暂不扫描。


暂不扫描。

Java源
暂不扫描。

对象类型
暂不扫描。

刷新组
暂不扫描。

概要文件
暂不扫描。

Sybase
取得数据库名的方法
系统存储过程sp_helpdb

或者

USE master

SELECT d.name dbname, u.name owner FROM sysdatabases d, sysusers u WHERE d.suid = u.suid


取得表的方法
系统存储过程

USE xxx

EXEC sp_help

或者

获取指定数据库的用户表:

USE DBAudit
SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND type = 'U'

获取指定数据库的系统表:

USE DBAudit
SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND type = 'S'

或者统一使用:

USE DBAudit

SELECT sysobjects.name AS tname, sysusers.name AS owner FROM sysobjects, sysusers WHERE sysobjects.uid = sysusers.uid AND (type = 'U' OR type = 'S')

注:

sysobjects中type字段类型解释:

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)
  相关解决方案