PL/SQL Developer:导出建表语句

在 PL/SQL Developer 里导出建表语句、视图这些对象,最简单直接的办法就是用"导出用户对象"功能,它会把选中的表、视图、序列、存储过程等一次性生成一个.sql 脚本文件。

🗂️ 工具导出

  1. 打开工具:登录 PL/SQL Developer,连接到目标数据库。

  2. 选择功能:点击菜单栏 工具 → 导出用户对象。

  3. 勾选对象:在弹出的窗口里,勾选需要导出的表、视图、序列等。如果不勾选,默认导出当前用户下的所有对象。

  4. 设置选项:建议勾选"包括所有者",这样导出的脚本里会带上用户名,导入到其他库时能自动对应;不勾选则脚本不带所有者,适合导入到不同用户下。

  5. 导出文件:选择输出路径和文件名(.sql 格式),点击"导出"即可。

> 这个方法导出的是对象结构(建表、建视图语句),不含表里的数据。如果要连数据一起导出,需要用下面的"导出表"功能。

📄 导出表结构+数据

如果想连表里的数据一起导出,用另一个功能:

  1. 点击 工具 → 导出表。

  2. 选择要导出的表。

  3. 在"SQL Inserts"选项卡里,勾选"创建表"选项(这样会生成建表语句),再按需选择是否导出数据。

  4. 指定输出文件路径,点击导出。

如果只需要表结构不想要数据,可以在"Where 子句"里写 `WHERE ROWNUM<1`,这样只生成建表语句。

⚙️ 用脚本导出 DDL(更灵活)

除了图形界面,也可以用 Oracle 自带的 `DBMS_METADATA` 包来生成精确的建表、建视图语句,适合批量处理或自动化:

```sql

SET LONG 100000;

SET PAGESIZE 0;

SET FEEDBACK OFF;

SET ECHO OFF;

-- 导出所有表的建表语句

SELECT DBMS_METADATA.GET_DDL('TABLE', table_name) FROM USER_TABLES;

-- 导出所有视图的创建语句

SELECT DBMS_METADATA.GET_DDL('VIEW', view_name) FROM USER_VIEWS;

```

执行前记得先设置 `SET LONG 100000`,否则长的 DDL 会被截断。

> 用 `DBMS_METADATA` 导出的 DDL 默认会带上 `STORAGE`、`TABLESPACE` 等物理属性,如果不需要,可以执行 `EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'STORAGE', FALSE);` 关闭。

🔄 导入到其他库

导出的.sql 文件,可以在 PL/SQL Developer 里打开 文件 → 新建 → 命令窗口,粘贴进去执行;或者用 SQL*Plus 直接 `@文件名.sql` 跑一遍就行。

相关推荐
曹牧5 小时前
C#:空合并运算符
java·前端·数据库
小羊没烦恼!6 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
泡海椒7 小时前
JQuick-SQL JOIN 查询:连接注册数据集的正确方式
数据库·sql
xiaogai_gai7 小时前
钉钉月结报销到金蝶付款单同步方案实战教程
大数据·数据库·钉钉
Nturmoils8 小时前
报表总在扫大表,列存储应该放在哪一层
数据库
夜雪一千8 小时前
ShardingSphere 雪花 / UUIDv7 主键分片实战 + SQL 建表示例
数据库·sql
Elastic 中国社区官方博客8 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
PingCAP9 小时前
Agent 从 Demo 到生产,到底卡在哪?
数据库·tidb·agent
SelectDB10 小时前
开源替代怎么选:能力对照、三条部署路径与四类边界速查
数据库·云原生·开源
SelectDB10 小时前
自建与托管怎么选:开源自建、私有化与云上托管三条路径速查
数据库·云原生·开源