gpt4 book ai didi

oracle - 如何使用低权限的 PL-SQL 获取 Oracle 中的列数据类型?

转载 作者:行者123 更新时间:2023-12-03 01:37:26 26 4
gpt4 key购买 nike

我对 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)

关于oracle - 如何使用低权限的 PL-SQL 获取 Oracle 中的列数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com