我对Oracle数据库中的几个表进行了“只读”访问。我需要获取一些列的模式信息。我想使用类似于MS sql的sp_help。
我看到我感兴趣的表在此查询中列出:
SELECT * FROM ALL_TABLES
当我运行这个查询,Oracle告诉我“在模式中找不到表”,是的参数是正确的。
SELECT DBMS_MetaDATA.GET_DDL('TABLE','ITEM_COMMIT_AGG','INTAMPS') AS DDL FROM DUAL;
使用我的Oracle通用翻译9000后,我猜测这不工作,因为我没有足够的权限。给定我的约束如何获得一个表上的列的数据类型和数据长度我有一个PL sql语句读取访问?
ALL_TAB_COLUMNS应该可以从PL / SQL查询。 DESC是一个sql * Plus命令。
sql> desc all_tab_columns; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) COLUMN_NAME NOT NULL VARCHAR2(30) DATA_TYPE VARCHAR2(106) DATA_TYPE_MOD VARCHAR2(3) DATA_TYPE_OWNER VARCHAR2(30) DATA_LENGTH NOT NULL NUMBER DATA_PRECISION NUMBER DATA_SCALE NUMBER NULLABLE VARCHAR2(1) COLUMN_ID NUMBER DEFAULT_LENGTH NUMBER DATA_DEFAULT LONG NUM_DISTINCT NUMBER LOW_VALUE RAW(32) HIGH_VALUE RAW(32) DENSITY NUMBER NUM_NULLS NUMBER NUM_BUCKETS NUMBER LAST_ANALYZED DATE SAMPLE_SIZE NUMBER CHARACTER_SET_NAME VARCHAR2(44) CHAR_COL_DECL_LENGTH NUMBER GLOBAL_STATS VARCHAR2(3) USER_STATS VARCHAR2(3) AVG_COL_LEN NUMBER CHAR_LENGTH NUMBER CHAR_USED VARCHAR2(1) V80_FMT_IMAGE VARCHAR2(3) DATA_UPGRADED VARCHAR2(3) HISTOGRAM VARCHAR2(15)