翻译自 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 APROCArgument Name Type In/Out Default?------------------------------ ----------------------- ------ --------P1 CHAR INP2 NUMBER IN PROCEDURE BPROCArgument Name Type In/Out Default?------------------------------ ----------------------- ------ --------P1 CHAR INP2 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 ADDRESSJOB_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 ADDRESSName Null? Type----------------------------------------- -------- ----------------------STREET VARCHAR2(20)CITY VARCHAR2(20) |
CREATE TYPE addr_varray AS VARRAY(10) OF ADDRESS;/
Type created. |
DESCRIBE addr_varray
addr_varray VARRAY(10) OF ADDRESSName 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 NUMBERPERSON EMPLOYEELOC 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 BEGINRETURN NUMERATOR/DENOMINATOR; END; END; / DESCRIBE rational
Name Null? Type ------------------------------ -------- ------------ NUMERATOR NUMBER DENOMINATOR NUMBERMETHOD ------ 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 |
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 ADDRESSSTREET 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) |