Kingbase V8R6存储过程变量数据导出到操作系统文件

说明:

KingbaseES V8R6如何将自定义过程中的变量数据导出到操作系统文件中。

本次案例数据库版本:

test=# select version();
version
----------------------------------------------------------------------------------------------------------------------
KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 行记录)

1.通过copy方式导出:

COPY命令格式:
COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | PROGRAM 'command' | STDIN }
[ [ WITH ] ( option [, ...] ) ]
[ WHERE condition ]

注意:copy xxx命令格式,xxx参数不支持直接传入变量数据,只能从表中复制数据

\set SQLTERM /
declare
out_data varchar2(30000);
copysql varchar;
fild_name varchar2(1000) default 'copy_file';
begin
out_data := '<?xml version="1.0"?><PACKAGEHEAD></PACKAGEHEAD><PACKAGEBODY></PACKAGEBODY>' ;
-- 创建临时表,将变量数据写入临时表,作为copy操作过渡
create temporary table if not exists xmltemp(xmltext text );
insert into xmltemp select out_data || '<PACKAGEBODY></PACKAGEBODY>' from dual;
copysql := ' copy ( select xmltext from xmltemp ) to '''|| '/home/kingbase/exptable/' || fild_name ||''' ' ;
execute immediate copysql;
delete from xmltemp;
end;
/
[kingbase@node128 exptable]$ ll
总用量 4
-rw-r--r-- 1 kingbase kingbase 103 8月 19 13:47 copy_file
[kingbase@node128 exptable]$ more copy_file
<?xml version="1.0"?>
<PACKAGEHEAD></PACKAGEHEAD>
<PACKAGEBODY></PACKAGEBODY>

2.通过utl_file扩展导出:

1.使用前需要在shared-library中添加utl_file一项。使用时需要create extension utl_file。
不需要使用时drop extension utl_file即可。
2.调用文件写入扩展
\set SQLTERM /
declare
out_data varchar2(30000);
file_handle utl_file.file_type;
fild_name varchar2(1000) default 'utl_file';
begin
out_data := '<?xml version="1.0"?><PACKAGEHEAD></PACKAGEHEAD><PACKAGEBODY></PACKAGEBODY>' ;
file_handle := utl_file.fopen('/home/kingbase/exptable', fild_name, 'a', 30000);
utl_file.put_line(file_handle, out_data);
utl_file.fclose(file_handle);
end;
/
[kingbase@node128 exptable]$ ll
总用量 8
-rw-r--r-- 1 kingbase kingbase 103 8月 19 13:47 copy_file
-rw------- 1 kingbase kingbase 76 8月 19 13:48 utl_file
[kingbase@node128 exptable]$ more utl_file
<?xml version="1.0"?>
<PACKAGEHEAD></PACKAGEHEAD>
<PACKAGEBODY></PACKAGEBODY>
[kingbase@node128 exptable]$

Kingbase V8R6存储过程变量数据导出到操作系统文件的更多相关文章

  1. Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

    Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...

  2. [转]Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

    本文转自:http://www.cnblogs.com/wuhuacong/archive/2012/03/09/2387680.html Oracle中对数据对象和数据的管理,无疑都是使用PL/SQ ...

  3. MySQL 服务器变量 数据操作DML-视图

    原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言: DDL的一 ...

  4. Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

    Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么 ...

  5. PCB MS SERVER 数据导出与导入操作步骤----使用第3方工具

    工作每天都与数据库打交道,经常会遇到一些需要将数据库中的数据导出来或将数据导入到数据库 而用微软数据库客户端自带的功能操作步骤好麻烦的,用过的大家都会有相同的感受吧. 微软客户端不好之处整理:这里吐槽 ...

  6. Oracle PLSQL数据导出csv的案例

    之前项目运维人员碰到一个问题,需要写一个存储过程,把数据导出为csv文件,查了一些资料,帮他写成了一个PLSQL,今天拿出来分享一下,不足之处,欢迎指教. 数据背景:  用到两张表,一张存放单位组织名 ...

  7. 在SQL Server中将数据导出为XML和Json

        有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做 ...

  8. 在sqlServer中把数据导出为insert脚本

    有时候为了把数据导出为insert脚本,不得不用一些小工具,或者通过自己写存储过程来完成这一操作.其实SqlServer本身就有这种功能.以下是详细步骤:

  9. 配置toad进行导入导出数据库操作

    最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...

随机推荐

  1. 虚拟机启动时报’A start job is running for /etc/rc.local .. Compatibility错误。

    虚拟机启动时报'A start job is running for /etc/rc.local .. Compatibility错误. 问题已经存在很长时间了,但是不影响ssh登录,遂置之未理. 经 ...

  2. Aspose最新版文档格式转换使用破解

    Aspose简介 Aspose.Total是Aspose公司旗下全套文件格式处理解决方案,提供最完整.最高效的文档处理解决方案集,无需任何其他软件安装和依赖.主要提供.net.java.C++d三个开 ...

  3. 一张图进阶 RocketMQ - 通信机制

    前 言 三此君看了好几本书,看了很多遍源码整理的 一张图进阶 RocketMQ 图片,关于 RocketMQ 你只需要记住这张图!觉得不错的话,记得点赞关注哦. [重要]视频在 B 站同步更新,欢迎围 ...

  4. 对 API 平台的再思考【eolink翻译】

    API 是推动现代企业数字化转型的基础.它不但连接了内部应用程序.合作伙伴和客户,同时也快速持续地向市场提供了各种新产品.版本和功能. 但当下还是以集中式的 API 交付为主.一个企业的对外 API ...

  5. 从零开始完整开发基于websocket的在线对弈游戏【五子棋】,只用几十行代码完成全部逻辑。

    五子棋是规则简单明了的策略型游戏,先形成五子连线者获胜.本课程习作采用两人在线对弈的方式进行比赛,拿着手机在上下班路上玩特别合适. 整个过程在众触低代码应用平台进行,使用表达式描述游戏逻辑(高度简化版 ...

  6. 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景

    欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 写在前面..... 本文是笔者肉眼盯 Bug 系列的第三弹,前 ...

  7. jdbc 04: 配置连接信息

    jdbc连接mysql,将需要的信息配置到文件中 package com.examples.jdbc.o4_配置连接信息; import java.sql.Connection; import jav ...

  8. Keep In Line_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/H 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...

  9. react 吸顶实现

    今天获取到一个需求,其实就是吸顶的需求,页面下滑,某一块dom隐藏时发生吸顶现象.这种特效其实老生常谈了,但是在这次做的时候,突发奇想,能否将其做成一个 hook ,从而实现出传递ref即可使得 do ...

  10. 快速体验Spring Boot了解使用、运行和打包 | SpringBoot 2.7.2学习系列

    SpringBoot 2.7.2 学习系列,本节内容快速体验Spring Boot,带大家了解它的基本使用.运行和打包. Spring Boot 基于 Spring 框架,底层离不开 IoC.AoP ...