oracle - Oracle 外部表中记录和字段的多个分隔符问题
问题描述
给定一个 .CSV 格式的文件;
!!"9999"!@!""!@!""!@!""!!
!!"100"!@!""!@!""!@!"INP"!!
!!"700"!@!""!@!""!@!""!!
!!"800"!@!""!@!""!@!""!!
开始和结束分隔符= !! 字段分隔符 = !@! 用双引号括起来的所有字段
以下外部语法无法正常工作;
CREATE TABLE caunit_ext
(
ID VARCHAR2(4),
MILL_FAC_ID VARCHAR2(200),
MILL_LOC_ID VARCHAR2(200),
MILL_ENC_TYP_ID VARCHAR2(200)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY PWSTAGING
ACCESS PARAMETERS (
RECORDS DELIMITED BY '!!'
FIELDS TERMINATED BY '!@!'
MISSING FIELD VALUES ARE NULL
(
ID CHAR(4),
MILL_FAC_ID CHAR(200),
MILL_LOC_ID CHAR(200),
MILL_ENC_TYP_ID CHAR(20)
)
)
LOCATION ('CAUNIT.csv')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;
/
select * from caunit_ext;
- 我可以使用多个字符作为分隔符吗?我看到的医生不要说你不能,但也不要说你可以!
- 由于我的开始记录和结束记录分隔符相同,如何处理?
解决方案
我的解决方案是使用 FILLER 参数来扔掉垃圾;
喜欢
create table REFRESHTABLE(C1 varchar2(200), C2 varchar2(200), C3 varchar2(200), C4 varchar2(200),C5 varchar2(200), C6 varchar2(200), C7 varchar2(200), C8 varchar2(200))
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY PWSTAGING ACCESS PARAMETERS (FIELDS TERMINATED BY ''"'' MISSING FIELD VALUES ARE NULL
(
FILLER,
C1 CHAR(200),
FILLER,
C2 CHAR(200),
FILLER,
C3 CHAR(200),
FILLER,
C4 CHAR(200),
FILLER,
C5 CHAR(200),
FILLER,
C6 CHAR(200),
FILLER,
C7 CHAR(200),
FILLER,
C8 CHAR(200)
)
)
LOCATION (''' || V_CURRENTTABLE || '.csv''))';
推荐阅读
- arrays - 在 Golang 中创建此 JSON 对象的最佳方法
- python - Ruby Array.wrap(item_or_array_like) 的 Python 等价物
- css - CSS边框半径问题的奇怪行为
- javascript - 清除多个输入字段的内容?
- python - 如何从 ArgumentParser 获取参数列表
- r - 将 .table 文件读入 R
- r - R Shiny Leaflet 服务器不会更改地图输出
- python - 如何处理具有多列和 if 语句的 Dataframe
- javascript - 下一个 js 在位置 0 处运行 dev 意外令牌 u 在 JSON 中
- python - 是否有在 python 中创建闭包的首选样式?