oracle clob 导出csv,在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法...
1. 需求 有一用户数据存在于csv文件,因为Apex不允许上传超过44列的数据(在该案例中有90多列),所以需求是把所有列先导入到一个clob字段,然后再用存储过程导出到对应的列。 2.解决方法 1) 创建一个有clob字段的表 CREATE TABLE TABLE3( CONTENT CLOB) ; 2
1. 需求
有一用户数据存在于csv文件,因为Apex不允许上传超过44列的数据(在该案例中有90多列),所以需求是把所有列先导入到一个clob字段,然后再用存储过程导出到对应的列。
2.解决方法
1) 创建一个有clob字段的表
CREATE TABLE "TABLE3"
( "CONTENT" CLOB
) ;
2)创建一个具有真实列的表
CREATE TABLE "TABLE4"
( "NAME" VARCHAR2(20 BYTE),
"SID" VARCHAR2(20 BYTE)
) ;
3) 准备一个csv文件
比如,文件名叫book1.csv,文件格式如下
a11,1
b2,2
c33,3
4) 把csv放到一个目录下
比如/home/oracle/csv
同时,在oracle建立一个directory对象
create or replace directory csv as '/home/oracle/csv' ;
grant read,write on directory csv to user1;
5) 写一个存储过程把csv放入clob
create or replace PROCEDURE writecsvintoclob AS
l_max_line_length integer := 32767;
l_buffer varchar2(32767);
l_file UTL_FILE.FILE_TYPE;
l_clob clob;
BEGIN
l_file := utl_file.fopen('CSV', 'book1.csv', 'r', l_max_line_length);
dbms_lob.createtemporary(l_clob, TRUE, DBMS_LOB.session);
loop
begin
utl_file.get_line(l_file, l_buffer);
dbms_lob.append(l_clob, l_buffer||';');
exception
when no_data_found then
exit;
end;
end loop;
insert into table3 (content) values (l_clob);
dbms_lob.freetemporary(l_clob);
UTL_FILE.FCLOSE(l_file);
END writecsvintoclob;
6) 写一个子存储过程把varchar放入列 (为把clob放入列做准备)
CREATE OR REPLACE PROCEDURE PUTVARCHARINTOCOL
(
P_BUFFER IN VARCHAR2
) AS
l_len number;
l_start number := 1;
l_end number := 32767;
l_amount number:=32767;
l_field varchar2(32767);
l_buffer varchar2(32767);
i number :=1;
l_sql varchar2(32767);
BEGIN
l_buffer := p_buffer || ',';
l_len :=length(l_buffer);
--dbms_output.put_line('l_len='||l_len);
l_end := instr(l_buffer, ',', l_start);
l_sql := 'insert into table4 (name,sid) values (';
while(l_start
7) 写一个存储过程把clob放入列
create or replace PROCEDURE putCLOBINTOcol AS
l_clob clob;
l_start number := 1;
l_end number := 32767;
l_amount number:=32767;
l_buffer varchar2(32767);
l_len number;
i number:=1;
BEGIN
select content into l_clob from table3;
l_len := dbms_lob.getlength(l_clob);
--dbms_output.put_line('l_len='||l_len);
l_end := instr(l_clob, ';', l_start);
while(l_start
3. 注意事项
由于有90多列,可能字符串的长度会超过32767,这需要额外处理。
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网
oracle clob 导出csv,在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法...相关推荐
- Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案
Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案 参考文章: (1)Oracle PLSQL 导出数据table xx ...
- python修改csv文件字段顺序_Pandas中DataFrame交换列顺序的方法实现
一.获取DataFrame列标签 import pandas as pd file_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_po ...
- 记录一次将dmp文件导入oracle数据库(本地导线上),所遇到的问题及解决方法
安装oracle环境(instantclient) 因线上已安装oracle完成版数据库,则本地只需安装instantclient即可进行导入数据操作 具体安装步骤请参考:https://blog.c ...
- oracle查询数据都是问号,Oracle数据库PL/SQL Developer查询结果显示问号乱码的解决方法...
PL SQL Developer,查询结果中的中文变成了一堆问号,SQL语句中的中文被提示invalid character,不能识别. 解决方法: 执行,select userenv('langua ...
- linux上oracle导入mysql_Linux 下 oracle 导入数据库—数据泵方式导入dmp文件
dmp导出数据源的oracle版本是12c,我本地oracle版本是11g,这在导入数据过程中导致出现错误 一.用system 用户登录oracle,我忘记了system密码,解决办法: [oracl ...
- javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)
[0]README 0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 : 0.2) 本文附 ...
- oracle 监听报错,Oracle EBS系统数据库监听报错TNS-12547、TNS-12560和TNS-00517解决方法...
记得有一次Oracle EBS系统中止运行3小时,实在比较一次惨痛的教训,让我至今记忆犹新. 问题症状:用户反映提交的请求全部是红色错误 开始意为是并发管理"标准管理器"的问题,在 ...
- CSV文件导入数据库的三种方法
将.csv格式数据导入数据库: 方式一. 在 MySQL 或者是 SQL Server 中直接编写代码,建立表格,然后导入数据. 注意:导入数据的格式要与创建数据库时的格式相同,不然会乱码. ...
- Oracle如何导出dmp文件
一:拥有oracle用户和密码 导出dmp文件 进入目录:/home/oracle/20181021 执行命令: exp 导入数据库用户名/密码 file=导出的dmp文件 log=日志名称 owne ...
- oracle下导出某用户表的方法
scott/tiger是用户名和密码,handson是导出的实例名 ²按用户方式导出数据(owner当中写的是用户名) expscott/tiger@handsonfile=scott_backown ...
最新文章
- 区块链技术之以太坊ETH白皮书
- 数字图像处理6:配准与掩膜
- 海啸(二维前缀和/二维树状数组)
- java 实现nfa的化简_DFA与NFA的等价性,DFA化简
- 遇到问题了 .net项目发布到iis6,没有权限访问!?
- mysql exporter_mysql exporter
- 使用差分金字塔提取图像边缘 python实现
- [转载] 2012年上半年信管网论文复习建议
- 三大运营商布局金融的套路不同,还能否搭上移动支付的快车?
- 【ANSYS命令流】Workbench中施加流体渗透压力载荷(超详细)
- C51单片机-蓝牙遥控小车
- 34个省级行政区域,包括23个省,5个自治区,4个直辖市,2个特别行政区。
- windows无法连接到打印机,打印处理器不存在
- NFT游戏开发NFT游戏平台模板搭建NFT平台定制开发MOBOX:NFT Farmer游戏开发
- Fcitx使用搜狗词库与皮肤
- VS2016 调用matlab脚本 ——缺少mclmcr.dll
- 【aviutl/lua】BPM打点
- C杂讲 字符串格式化 组包与解包
- 等级考试三级(分形盒)
- Java 基础知识随笔1
热门文章
- BZOJ 1208 HNOI 2004 宠物收养所 splay
- 2019白金之星 第一次初赛 第一题 Polynomial
- Postgresql 创建主键并设置自动递增的三种方法
- innodb存储引擎之内存
- hdu 1421 搬寝室(dp)
- Yii2实现自定义独立验证器的方法
- C# 语法一 构造函数
- Win10系列:WinJS库控件
- SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework...
- Noip2013错误避免