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` 跑一遍就行。

相关推荐
数据库急诊室_阿哲1 小时前
一次加索引建议的复核记录:从报告到签字
数据库·ai数据库
青瓦梦滋2 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
慧都小妮子3 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能
Joy T3 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
杨凯凡4 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql
Aloudata4 小时前
Claude 做数据分析的这两年:一份复盘与发展线索
大数据·数据库·人工智能·数据挖掘·数据分析·dataagent
Decay__4 小时前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构
zhanghaha13144 小时前
C# 系列教程_12 字符串 string 保姆级系统教程(面向新手,大量示例 + 原理讲解)
开发语言·数据库·c#
韩曙亮4 小时前
【错误记录】安卓 adb 调试 5037 端口占用排查 ( adb 的三层结构 | 找出本机占用 5037 的进程 )
android·数据库·adb·安卓·错误记录
瑞雪兆丰年兮5 小时前
JavaWeb-day07-MySQL(DQL&多表设计)
java·开发语言·数据库·sql·mysql·javaweb·web