【问题标题】:Equivalent of .schema in Oracle相当于 Oracle 中的 .schema
【发布时间】:2015-11-19 06:48:50
【问题描述】:

我对数据库中的表具有读取权限,并且我想获取关系模式。在 Sqlite3 中,我知道你可以做 .schema 。但是,我想知道 OracleDB 中的等价物是什么。似乎很难找到,因为他们已经改变了模式这个词的用途。

【问题讨论】:

  • 对于我们这些不了解 SQLite 的人:.schema 的作用是什么? “获取关系模式”到底是什么意思?

标签: oracle schema


【解决方案1】:

据我所知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" 

【讨论】:

    猜你喜欢
    • 2016-03-08
    • 2018-08-06
    • 2012-02-21
    • 2018-09-28
    • 1970-01-01
    • 2017-06-23
    • 2015-04-27
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多