sintaxis primary foreign example ejemplo developer describe create sql oracle sqlplus

primary - describe table oracle pl/sql developer



Cómo obtener Oracle create table statement en SQL*Plus (2)

Desde Obtener tabla e indexar DDL de la manera más fácil :

set heading off; set echo off; Set pages 999; set long 90000; spool ddl_list.sql select dbms_metadata.get_ddl(''TABLE'',''DEPT'',''SCOTT'') from dual; select dbms_metadata.get_ddl(''INDEX'',''DEPT_IDX'',''SCOTT'') from dual; spool off;

Tengo una tabla que existe en una base de datos Oracle, pero no aparece en mi lista de tablas en la herramienta SQL Developer. Sin embargo, si voy a SQL * Plus, y hago un

select table_name from user_tables;

Obtengo la tabla en la lista. Si escribo

desc snp_clearinghouse;

me muestra los campos. Me gustaría obtener la declaración de creación, porque necesito agregar un campo. Puedo modificar la tabla para agregar el campo, pero aún necesito la declaración de creación para ponerla en nuestro control de fuente. ¿Qué instrucción pl / sql se usa para obtener la instrucción create para una tabla?


Igual que el anterior, pero el script genérico se encuentra aquí gen_create_table_script.sql

-- ############################################################################################# -- -- %Purpose: Generate ''CREATE TABLE'' Script for an existing Table in the database -- -- Use: SYSTEM, SYS or user having SELECT ANY TABLE system privilege -- -- ############################################################################################# -- set serveroutput on size 200000 set echo off set feedback off set verify off set showmode off -- ACCEPT l_user CHAR PROMPT ''Username: '' ACCEPT l_table CHAR PROMPT ''Tablename: '' -- DECLARE CURSOR TabCur IS SELECT table_name,owner,tablespace_name, initial_extent,next_extent, pct_used,pct_free,pct_increase,degree FROM sys.dba_tables WHERE owner=upper(''&&l_user'') AND table_name=UPPER(''&&l_table''); -- CURSOR ColCur(TableName varchar2) IS SELECT column_name col1, DECODE (data_type, ''LONG'', ''LONG '', ''LONG RAW'', ''LONG RAW '', ''RAW'', ''RAW '', ''DATE'', ''DATE '', ''CHAR'', ''CHAR'' || ''('' || data_length || '') '', ''VARCHAR2'', ''VARCHAR2'' || ''('' || data_length || '') '', ''NUMBER'', ''NUMBER'' || DECODE (NVL(data_precision,0),0, '' '','' ('' || data_precision || DECODE (NVL(data_scale, 0),0, '') '','','' || DATA_SCALE || '') ''))) || DECODE (NULLABLE,''N'', ''NOT NULL'','' '') col2 FROM sys.dba_tab_columns WHERE table_name=TableName AND owner=UPPER(''&&l_user'') ORDER BY column_id; -- ColCount NUMBER(5); MaxCol NUMBER(5); FillSpace NUMBER(5); ColLen NUMBER(5); -- BEGIN MaxCol:=0; -- FOR TabRec in TabCur LOOP SELECT MAX(column_id) INTO MaxCol FROM sys.dba_tab_columns WHERE table_name=TabRec.table_name AND owner=TabRec.owner; -- dbms_output.put_line(''CREATE TABLE ''||TabRec.table_name); dbms_output.put_line(''( ''); -- ColCount:=0; FOR ColRec in ColCur(TabRec.table_name) LOOP ColLen:=length(ColRec.col1); FillSpace:=40 - ColLen; dbms_output.put(ColRec.col1); -- FOR i in 1..FillSpace LOOP dbms_output.put('' ''); END LOOP; -- dbms_output.put(ColRec.col2); ColCount:=ColCount+1; -- IF (ColCount < MaxCol) THEN dbms_output.put_line('',''); ELSE dbms_output.put_line('')''); END IF; END LOOP; -- dbms_output.put_line(''TABLESPACE ''||TabRec.tablespace_name); dbms_output.put_line(''PCTFREE ''||TabRec.pct_free); dbms_output.put_line(''PCTUSED ''||TabRec.pct_used); dbms_output.put_line(''STORAGE ( ''); dbms_output.put_line('' INITIAL ''||TabRec.initial_extent); dbms_output.put_line('' NEXT ''||TabRec.next_extent); dbms_output.put_line('' PCTINCREASE ''||TabRec.pct_increase); dbms_output.put_line('' )''); dbms_output.put_line(''PARALLEL ''||TabRec.degree); dbms_output.put_line(''/''); END LOOP; END; /