【达梦数据库(Oracle模式)】如何将视图中的数据导出

在某些情况下,我们需要将生产环境某个模式下的数据导入到开发电脑中,因为正式环境无法连接外网数据。

方式一:将视图查询出来,然后右键导出所有查询结果(不推荐)

优点:方便快捷

缺点:视图如果很多的话,时间耗费就很久了

方式二:新建一个模式,将视图存到新模式的表中导出(推荐)

使用存储模式实现将视图存到另一个模式下

sql 复制代码
DECLARE
  -- 游标用于获取所有视图的名称
  CURSOR view_cursor IS
    SELECT VIEW_NAME
    FROM ALL_VIEWS
    WHERE OWNER = 'OLD_MODEL'; -- 获取 INDEX_SYSTEM 模式下的所有视图
  
  -- 用于存储视图名的变量
  view_name VARCHAR2(255);
  sql_create_table VARCHAR2(4096);
  sql_insert_data VARCHAR2(4096);
BEGIN
  -- 遍历所有视图
  FOR rec IN view_cursor LOOP
    view_name := rec.VIEW_NAME;
    
    -- 构造创建表的SQL语句
    sql_create_table := 'CREATE TABLE NEW_MODEL.' || view_name || ' AS SELECT * FROM OLD_MODEL.' || view_name;
    
    -- 执行创建表的SQL语句
    EXECUTE IMMEDIATE sql_create_table;
    
    -- 构造插入数据的SQL语句
    sql_insert_data := 'INSERT INTO NEW_MODEL.' || view_name || ' SELECT * FROM OLD_MODEL.' || view_name;
    
    -- 执行插入数据的SQL语句
    EXECUTE IMMEDIATE sql_insert_data;
    
    DBMS_OUTPUT.PUT_LINE('视图 ' || view_name || ' 已成功转存到 NEW_MODEL.');
  END LOOP;
END;
/

然后使用数据迁移工具将NEW_MODEL中的数据导出即可

相关推荐
周杰伦fans15 分钟前
[特殊字符] 代理模式超详细讲解 ——.NET
数据库·c#·代理模式
YJlio28 分钟前
「C++ 40 周年」:从“野蛮生长的指针地狱”到 AI 时代的系统底座
c++·人工智能·oracle
TDengine (老段)1 小时前
TDengine 转换函数 TO_JSON 用户手册
android·大数据·数据库·json·时序数据库·tdengine·涛思数据
2301_800256111 小时前
第七章 空间存储与索引 知识点梳理3(空间填充曲线)
数据库·笔记·sql·postgresql
冰封剑心1 小时前
MiniCPM-V-2_6 (4-bit 量化)使用
java·前端·数据库
小满、1 小时前
MySQL :存储引擎原理、索引结构与执行计划
数据库·mysql·索引·mysql 存储引擎
x***13392 小时前
SQL Server 创建用户并授权
数据库·oracle
JIngJaneIL2 小时前
智慧物业|物业管理|基于SprinBoot+vue的智慧物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·论文·智慧物业管理系统
枫叶梨花2 小时前
一次 Kettle 中文乱码写入失败的完整排查实录
数据库·后端
Gobysec3 小时前
Goby 漏洞安全通告|Oracle Identity Manager 命令执行漏洞(CVE-2025-61757)
安全·oracle·漏洞检测·cve-2025-61757·漏洞研究