我对数据库中的表有读访问权限,我想获得关系模式。在Sqlite3中,我知道你可以做.schema。但是,我想知道OracleDB中的等价物是什么。似乎很难找到,因为他们已经重新定位了模式这个词。
答案 0 :(得分:0)
据我所知SQLite link
.schema?TABLE?显示CREATE语句 如果指定了TABLE,则只显示匹配的表 LIKE模式表。
要获取Oracle对象的DDL / create语句,您需要使用包DBMS_METADATA
示例:获取当前架构中所有完整表的DDL, 过滤掉嵌套表和溢出段
--create test table
create table my_test_table(col1 varchar(50));
--get DDL
SELECT table_name, DBMS_METADATA.GET_DDL('TABLE',u.table_name)
FROM USER_ALL_TABLES u
WHERE u.nested='NO'
AND (u.iot_type is null or u.iot_type='IOT');
--query result
TABLE_NAME DBMS_METADATA.GET_DDL('TABLE',
1 MY_TEST_TABLE <CLOB>
--DDL for MY_TEST_TABLE will be
CREATE TABLE "TESTUSER"."MY_TEST_TABLE"
( "COL1" VARCHAR2(50)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"