Oracle入门(五B)之desc命令

翻译自   DESCRIBE

describe命令

列出指定表的列定义,视图或同义词,或指定函数或存储过程的详述。

语法:desc[ribe]   {[模式.]对象[@链接串]}

模式

表示对象驻留的架构。如果省略架构,SQL*Plus假定拥有自己的对象。

对象

表示要描述的表、视图、类型、过程、函数、包或同义词。

@链接串

包含与对象存在的数据库对应的数据库链接名称。有关哪些特权允许访问不同架构中的另一个表的更多信息,请参阅Oracle数据库SQL引用


用法

说明 对于表,视图,类型和同义词包含以下信息:

  • 每列的名称

  • 是否允许空值(NULL或NOT NULL)用于每列

  • 数据类型的列,例如CHAR,DATE, 长,LONGRAW,NUMBER, 生的,ROWID,VARCHAR2 (VARCHAR)或XMLType

  • 列的精度(以及数字列的缩放比例,如果有的话)

在执行DESCRIBE时,VARCHAR列将返回一个VARCHAR2类型。

DESCRIBE命令使您能够递归地描述对象到SET DESCRIBE命令中设置的深度级别。当对象包含多个对象类型时,您还可以显示属性或列名的行号和缩进。有关更多信息,请参阅SET命令。

要控制显示数据的宽度,请使用SET LINESIZE命令。

DESCRIBE命令的列输出通常分配一定比例的当前指定的行大小。使用SET LINESIZE命令减小或增加行大小通常会使每列按比例变小或变大。这可能会给您的显示器带来意想不到的文字包装。有关更多信息,请参阅SET命令。

说明 功能和程序包含以下信息:

  • PL / SQL对象的类型(函数或过程)

  • 函数或过程的名称

  • 返回的值的类型(对于函数)

  • 参数名称,类型,输入或输出以及默认值(如果有的话)

  • ENCRYPT关键字来指示列中的数据是否被加密


例子

描述视图EMP_DETAILS_VIEW的结构

DESCRIBE EMP_DETAILS_VIEW
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 JOB_ID                                    NOT NULL VARCHAR2(10)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
 LOCATION_ID                                        NUMBER(4)
 COUNTRY_ID                                         CHAR(2)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 SALARY                                             NUMBER(8,2)
 COMMISSION_PCT                                     NUMBER(2,2)
 DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
 JOB_TITLE                                 NOT NULL VARCHAR2(35)
 CITY                                      NOT NULL VARCHAR2(30)
 STATE_PROVINCE                                     VARCHAR2(25)
 COUNTRY_NAME                                       VARCHAR2(40)
 REGION_NAME                                        VARCHAR2(25)

描述存储过程CUSTOMER_LOOKUP的结构

DESCRIBE customer_lookup
PROCEDURE customer_lookup
Argument Name           Type     In/Out   Default?
----------------------  -------- -------- ---------
CUST_ID                 NUMBER   IN
CUST_NAME               VARCHAR2 OUT

创建和描述包APACK包含存储过程aproc和bproc的结构

CREATE PACKAGE apack AS
PROCEDURE aproc(P1 CHAR, P2 NUMBER);
PROCEDURE bproc(P1 CHAR, P2 NUMBER);
END apack;
/
Package created.

DESCRIBE apack
PROCEDURE APROC
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P1                             CHAR                    IN
 P2                             NUMBER                  IN
PROCEDURE BPROC
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P1                             CHAR                    IN
 P2                             NUMBER                  IN

创建和描述包含属性STREET和CITY的对象类型ADDRESS

CREATE TYPE ADDRESS AS OBJECT
  ( STREET  VARCHAR2(20),
    CITY    VARCHAR2(20)
  );
/
Type created.

DESCRIBE address
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 STREET                                             VARCHAR2(20)
 CITY                                               VARCHAR2(20)

创建和描述包含属性LAST_NAME,EMPADDR,JOB_ID和SALARY的对象类型EMPLOYEE

CREATE TYPE EMPLOYEE AS OBJECT
(LAST_NAME VARCHAR2(30),
EMPADDR ADDRESS,
JOB_ID VARCHAR2(20),
SALARY NUMBER(7,2)
);
/
Type created.

DESCRIBE employee
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 LAST_NAME                                          VARCHAR2(30)
 EMPADDR                                            ADDRESS
 JOB_ID                                             VARCHAR2(20)
 SALARY                                             NUMBER(7,2)

创建对象类型addr_type 并描述作为对象类型ADDRESS的一个表

CREATE TYPE addr_type IS TABLE OF ADDRESS;/
Type created.

DESCRIBE addr_type
 addr_type TABLE OF ADDRESS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 STREET                                             VARCHAR2(20)
 CITY                                               VARCHAR2(20)
创建对象类型 addr_varray并描述作为对象类型ADDRESS的一个数组
CREATE TYPE addr_varray AS VARRAY(10) OF ADDRESS;/
Type created.

DESCRIBE addr_varray
 addr_varray VARRAY(10) OF ADDRESS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 STREET                                             VARCHAR2(20)
 CITY                                               VARCHAR2(20)

创建和描述包含列DEPARTMENT_ID, PERSON和LOC的表department

CREATE TABLE department
(DEPARTMENT_ID NUMBER,
PERSON EMPLOYEE,
LOC NUMBER
);
/
Table created.

DESCRIBE department
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 DEPARTMENT_ID                                      NUMBER
 PERSON                                             EMPLOYEE
 LOC                                                NUMBER

创建和描述包含属性NUMERATOR和DENOMINATOR的对象类型rational以及 METHOD rational_order

CREATE OR REPLACE TYPE rational AS OBJECT
(NUMERATOR NUMBER,
DENOMINATOR NUMBER,
MAP MEMBER FUNCTION rational_order - 
RETURN DOUBLE PRECISION,
PRAGMA RESTRICT_REFERENCES
(rational_order, RNDS, WNDS, RNPS, WNPS) );
/
CREATE OR REPLACE TYPE BODY rational AS OBJECT
MAP MEMBER FUNCTION rational_order - 
RETURN DOUBLE PRECISION IS 
BEGIN
  RETURN NUMERATOR/DENOMINATOR;
END;
END;
/
DESCRIBE rational
Name                             Null?      Type
------------------------------   --------   ------------
NUMERATOR                                   NUMBER
DENOMINATOR                                 NUMBER

METHOD
------
MAP MEMBER FUNCTION RATIONAL_ORDER RETURNS NUMBER

创建包含XMLType列的,,并且描述其结构

CREATE TABLE PROPERTY (Price NUMBER, Description SYS.XMLTYPE);
Table created

DESCRIBE PROPERTY;
Name                                       Null?     Type
-----------------------------------------  --------  ----------------------
PRICE                                                NUMBER
DESCRIPTION                                          SYS.XMLTYPE
要格式化DESCRIBE输出,请使用SET命令,如下所示:
SET LINESIZE 80
SET DESCRIBE DEPTH 2
SET DESCRIBE INDENT ON
SET DESCRIBE LINE OFF

要显示对象的设置,请按如下所示使用SHOW命令:

SHOW DESCRIBE
DESCRIBE DEPTH 2 LINENUM OFF INDENT ON

DESCRIBE employee
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 FIRST_NAME                                         VARCHAR2(30)
 EMPADDR                                            ADDRESS
   STREET                                           VARCHAR2(20)
   CITY                                             VARCHAR2(20)
 JOB_ID                                             VARCHAR2(20)
 SALARY                                             NUMBER(7,2)

要创建并描述包含加密列col2的表des2_table

CREATE TABLE des2_table (
col1 VARCHAR2(10),
col2 VARCHAR2(15) ENCRYPT,
col3 CHAR(5),
col4 CHAR(20));
Table created

DESCRIBE des2_table;
Name                                       Null?     Type
-----------------------------------------  --------  ----------------------
COL1                                                 VARCHAR2(10)
COL2                                                 VARCHAR2(15) ENCRYPT
COL3                                                 CHAR(5)
COL4                                                 CHAR(20)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值