如何从Oracle APEX云免费账户导出数据并生成INSERT语句?
生成INSERT语句迁移Oracle APEX云数据的方法
方法一:用SQL Workshop的Unload功能(可视化操作)
这是最省心的方式,直接在APEX界面操作:
- 登录免费账户,进入SQL Workshop -> Object Browser
- 找到目标表,点进去查看表详情
- 切换到Data标签页,查看表内所有数据
- 点击页面顶部的Unload按钮,在弹出选项中选择Insert Statements
- 按需配置:可选择导出全部行,或添加过滤条件;还能设置INSERT语句是否带列名、是否添加COMMIT语句
- 点击Unload,系统直接生成完整的INSERT脚本,复制或下载即可
方法二:手写SQL拼接INSERT语句
需要更灵活控制时,直接编写SQL生成:
SELECT 'INSERT INTO 你的表名 (列1, 列2, 列3) VALUES (''' || 列1 || ''', ''' || 列2 || ''', ' || 列3 || ');' AS insert_stmt FROM 你的表名;
- 替换成实际的表名和列名
- 如果字段包含单引号,需用
REPLACE函数处理,比如将列1改为REPLACE(列1, '''', ''''''),避免语法错误 - 执行后复制结果集中
insert_stmt列的内容,就是可用的INSERT脚本
方法三:用APEX_DATA_EXPORT包批量处理
如果要一次性导出多个表,使用APEX自带的PL/SQL包:
DECLARE l_export CLOB; BEGIN l_export := APEX_DATA_EXPORT.GET_DATA( p_format => APEX_DATA_EXPORT.FORMAT_SQL, p_query => 'SELECT * FROM 你的表名', p_sql_format_type => APEX_DATA_EXPORT.SQL_FORMAT_TYPE_INSERT ); DBMS_OUTPUT.PUT_LINE(l_export); END; /
- 执行代码后,通过DBMS_OUTPUT查看生成的语句,也可将CLOB内容保存为文件
- 需处理多个表时,可编写循环遍历表名列表实现批量生成
关于EXPDP的说明
Oracle APEX免费账户没有权限使用EXPDP(数据泵导出),因为该工具需要服务器级访问权限,免费账户无法获取,因此只能通过上述方法生成INSERT语句完成数据迁移。
内容的提问来源于stack exchange,提问作者Ziad Adnan
相关产品推荐
相关产品推荐

