如何在Oracle中生成脚本列表

时间:2012-10-26 14:48:38

标签: oracle plsql

在SQL Server中有一个任务功能,然后您可以“生成脚本”,这对于视图和存储过程等内容非常有用。

在Oracle中,我可以生成这样的视图副本吗?这是怎么做到的?我正在使用PL SQL。

我正在尝试在笔记本电脑上更新我的Oracle数据库。最近我正在工作的数据库中添加了许多新的视图和存储过程。我也从笔记本电脑开发工作。

而不是备份整个数据库,如果我可以复制这些视图和sp会更容易。

1 个答案:

答案 0 :(得分:3)

听起来你可能正在寻找该软件包中的DBMS_METADATA package and the GET_xxx functions。这就是SQL Developer和其他GUI之类的工具将调用为特定对象生成DDL。

因此,例如,如果您想在SQL(或PL / SQL)中的EMP模式中获取SCOTT表的DDL,则可以

SQL> ed
Wrote file afiedt.buf

  1  select dbms_metadata.get_ddl( 'TABLE', 'EMP', 'SCOTT' )
  2*   from dual
SQL> /

DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')
--------------------------------------------------------------------------------

  CREATE TABLE "SCOTT"."EMP"
   (    "EMPNO" NUMBER(4,0),
        "ENAME" VARCHAR2(10),
        "JOB" VARCHAR2(9),
        "MGR" NUMBER(4,0),
        "HIREDATE" DATE,
        "SAL" NUMBER(7,2),
        "COMM" NUMBER(7,2),
        "DEPTNO" NUMBER(2,0),
         CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
  ALTER INDEX "SCOTT"."PK_EMP"  UNUSABLE ENABLE,
         CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
          REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE
   ) 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 DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
  CACHE