Oracle中的自省查询之旅(oracle中自查询)

Oracle中的自省查询之旅

随着业务的发展和变化,我们经常需要查询表的结构信息、触发器信息、索引信息、存储过程信息等。Oracle提供了一些系统视图和系统函数来帮助我们查询这些信息,称之为自省查询。

本文将介绍Oracle中常用的自省查询方法。

一、表信息查询

1.查询所有表的信息

“`sql

SELECT *

FROM ALL_TABLES;


2.查询所有表的字段信息

```sql
SELECT *
FROM ALL_TAB_COLUMNS;

3.查询某张表的字段信息

“`sql

SELECT *

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = ‘表名’;


4.查询某张表的约束信息

```sql
SELECT *
FROM ALL_CONSTRNTS
WHERE TABLE_NAME = '表名';

5.查询某张表的外键信息

“`sql

SELECT *

FROM ALL_CONSTRNTS

WHERE TABLE_NAME = ‘表名’

AND CONSTRNT_TYPE = ‘R’;


二、索引信息查询

1.查询所有索引的信息

```sql
SELECT *
FROM ALL_INDEXES;

2.查询某张表的所有索引信息

“`sql

SELECT *

FROM ALL_INDEXES

WHERE TABLE_NAME = ‘表名’;


3.查询某张表的主键索引信息

```sql
SELECT *
FROM ALL_CONSTRNTS
WHERE TABLE_NAME = '表名'
AND CONSTRNT_TYPE = 'P';

三、存储过程信息查询

1.查询所有存储过程的信息

“`sql

SELECT *

FROM ALL_PROCEDURES;


2.查询某个存储过程的参数信息

```sql
SELECT *
FROM ALL_ARGUMENTS
WHERE OBJECT_TYPE = 'PROCEDURE'
AND OBJECT_NAME = '存储过程名';

3.查询某个存储过程的定义信息

“`sql

SELECT *

FROM ALL_SOURCE

WHERE TYPE = ‘PROCEDURE’

AND NAME = ‘存储过程名’;


四、触发器信息查询

1.查询所有触发器的信息

```sql
SELECT *
FROM ALL_TRIGGERS;

2.查询某张表的触发器信息

“`sql

SELECT *

FROM ALL_TRIGGERS

WHERE TABLE_NAME = ‘表名’;


3.查询某个触发器的定义信息

```sql
SELECT *
FROM ALL_SOURCE
WHERE TYPE = 'TRIGGER'
AND NAME = '触发器名';

通过以上常用的自省查询,我们可以轻松地查询Oracle中各种对象的信息。这些信息对于数据库开发、优化和管理十分有用。


数据运维技术 » Oracle中的自省查询之旅(oracle中自查询)