oracle 双引号替换,oracle - Oracle SQL-Loader在值中有效地处理内部双引号 - SO中文参考 - www.soinside.com...

如果您在封闭的字段中没有管道,则可以从控制文件中执行此操作。如果你可以在一个字段中同时拥有管道和双引号,那么我认为你别无选择,只能对这些文件进行预处理。

你的解决方案[1],取代双引号with an SQL operator,发生得太晚,无法发挥作用;在执行SQL步骤之前,SQL * Loader已经解释了分隔符和附件。您的解决方案[2],忽略外壳,将与[1]结合使用 - 直到其中一个字段确实包含管道字符。并且解决方案[3]具有与全局使用[1]和/或[2]相同的问题。

有时,作为分隔符的标点符号也必须包含在数据中。为了实现这一点,两个相邻的分隔符字符被解释为字符的单个匹配项,并且该字符包含在数据中。

换句话说,如果您在字段内重复双引号,那么它们将被转义并显示在表数据中。由于无法控制数据生成,因此您可以预处理文件,以使用转义双引号替换所有双引号。除非您不想替换所有这些 - 实际上真正的外壳不应该被转义。

您可以使用正则表达式来定位相关字符将跳过其他人。不是我强大的领域,但我认为你可以用lookahead and lookbehind assertions做到这一点。

如果你有一个名为orig.txt的文件,其中包含:

"1"|A|"B"|"C|D"

"2"|A|"B"|"C"D"

3|A|""B""|"C|D"

4|A|"B"|"C"D|E"F"G|H""

你可以这样做:

perl -pe 's/(? new.txt

这会查找一个双引号,它不在行开始锚点或管道符号之前;并且后面没有管道字符或行尾锚点;并且只替换那些带有转义(加倍)双引号的人。这将使new.txt包含:

"1"|A|"B"|"C|D"

"2"|A|"B"|"C""D"

3|A|"""B"""|"C|D"

4|A|"B"|"C""D|E""F""G|H"""

字段开头和结尾的双引号不会被修改,但中间的双引号现在被转义。如果您随后使用带有双引号机箱的控制文件加载了该文件:

load data

truncate

into table t42

fields terminated by '|' optionally enclosed by '"'

(

col1,

col2,

col3,

col4

)

然后你最终得到:

select * from t42 order by col1;

COL1 COL2 COL3 COL4

---------- ---------- ---------- --------------------

1 A B C|D

2 A B C"D

3 A "B" C|D

3 A B C"D|E"F"G|H"

希望与原始数据匹配。可能存在不起作用的边缘情况(如双引号后跟字段中的管道)但是对于尝试解释其他人的数据可以做什么是有限制的...可能还有(很多)当然,更好的正则表达模式。

如果数据文件是(或可以)在Oracle目录中并且您具有正确的权限,您还可以考虑使用an external table而不是SQL * Loader。您仍然需要修改该文件,但您可以使用preprocessor指令自动执行该操作,而不是在调用SQL * Loader之前需要显式执行此操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

切片器可以设置日期格式?_Power BI 中的切片器

何时使用切片器在要完成以下操作时,切片器非常有用:在报表画布上显示常用或重要的筛选器,用以简化访问。更轻松地查看当前筛选的状态,而无需打开下拉列表。按数据表中不需要的和隐藏的列进行筛选。通过将切片器放置在重要的视觉对…

linux打印jvm内存堆栈_5款强大的JVM 性能调优监控工具

原文链接:www.iteye.com/blog/josh-persistence-2161848现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高......这些问题在日…

oracle命令行查看编码,Oracle数据库查看编码和修改编码

首先查看oracle数据库的编码SQL> select * from nls_database_parameters where parameter NLS_CHARACTERSET;PARAMETER--------------------VALUE--------------------NLS_CHARACTERSETAL32UTF8这其来源于props$,这是表示数据库的字符集。oracle客户端编码SQL&g…

eclipse的tomcat如何运行自动弹网页_4个国外网页设计网站案例欣赏

原标题:4个国外网页设计网站案例欣赏要想把自己的网站制作得更加美观、吸引人,你需要多参考一些高质量的网站设计案例。今天就给大家看几个比较好的国外网页设计网站,你可以从中学习这些国外网页设计的思路。1.礼盒电商网站如何让自己的网站更…

参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...

前言在当下的时代,懂高并发性能调优,一定是你在技术进阶赛道变得牛逼的加分项。不论,你是开发,架构还是管理岗,亦或者是其他互联网相关岗位。 因为毫不夸张的说,在现在动辄过千万级的并发流量环境下&#x…

ai算子是什么_隐私AI框架中的数据流动与工程实现

在上一篇文章中,我们介绍了,对于安全技术开发者,如何快速的基于 Rosetta 等隐私 AI 框架所提供的一系列接口,将自己的安全协议集成落地到上层的 AI 应用中来。在这一篇文章中,我们将介绍为了保护用户的隐私数据&#x…

oracle存储过程 ppt,oracle_存储过程培训(动画版本)详解.ppt

存储过程 ORACLE 和informix 存储过程区别 10.赋值 Oracle: v_1 : 100; Informix: let v_1 100; 2009/07/09 尚洋信德 存储过程 练习 创建一个存储过程, 使用游标从dept表中取BID为’010’开头的记录信息, 把它往表t01_psn中插入一条记录,并且循环打印插入的数据记录. 2009/07…

从零开始学电脑_带你从零开始学装机 打造自己的专属电脑之固态和机械硬盘搭配篇...

前几天我们分别讲了自己装配一台电脑,如何选择CPU、主板、内存和显卡。电脑的硬盘是安装操作系统和存储数据的地方,就好像我们现实中的仓库。一般电脑磁盘常见的组合方式有以下三种:1.纯机械硬盘(一般是1T或者2T)2.双硬盘(固态机械&#xff0…

java程序里繁体字显示为方块_网页 俄罗斯方块

游戏地址:俄罗斯方块 | Tetris​zhangxiaoleiwk.gitee.io看着眼熟?没错,UI 模仿了tetr.js,但代码是自己写的。只支持电脑端,不知道键位可以点击设置查看。游戏用纯 JavaScript、HTML、CSS 实现,图形用 canv…

oracle 日期6,EF 6与Oracle - 如何加入日期字段?

我正在使用EF 6与Oracle,我正在尝试使用员工编号和日期字段进行多列连接。我无法让LEFT OUTER JOIN正常工作,我很确定这是因为日期。我知道Oracle中的日期可能会非常棘手,我通常必须使用“TO_DATE”函数去掉HH:mm:ss&a…

windows分辨率修改工具_Windows 字体优化,这几个办法能帮你解决

如何改善 Windows 的字体渲染是一个亘古不变的话题,长期以来大家都有这样的一个印象:Windows 上面的字体渲染相比 macOS 没有那么细腻清晰。实际上,也确实是这个样子,由于 Windows 世界中参差不齐的硬件和向前兼容的「历史包袱」&…

fc安卓模拟器_RA替代计划(上)—3DS的全能模拟器太难用?推荐几个替代品给你...

玩模拟器的各位同好几乎没有没听过“全能模拟器”(中文译名,英文叫做Retroarch,简称RA,官网www.retroarch.com)的大名的,它的优点可以用一个字来概括,就是“全”。全能模拟器就是“全”第一,全模拟器支持。…

linux 命令 记忆方法,linux 记忆命令心得

新开始学linux,要记住很多的命令,毕竟这是linux的根本,没有这些命令,连操作都没办法进行。所以我写这个的目的是我自己记忆,也是想帮助一下一同学习linux的同学们,提供自己记忆这些的方法,抛砖引…

.net pdf转图片_图片转PDF怎么转?推荐两种图片转PDF方法

在我们的工作和学习中,我们有时候需要将图片转换为PDF格式的文件。因为PDF格式的文件查看起来很不容易,所以它可以确保图片文件中的信息不被泄露。那么图片转PDF怎么转呢?大家可以参考下面这两种方法,一起来看看到底是怎么转换的吧…

vue axios 发送get请求传递参数给后端失败_Java之Vue插件之Axios

Java之Vue插件之Axios,环境安装:npm install --save axios vue-axios //安装axiosNpm install //安装依赖在main.js中注册import axios from axiosimport VueAxios from vue-axiosVue.use(VueAxios, axios)在对应组件的方法中,发送axios请求&…

linux c 服务程序,Linux C 后台服务程序单进程控制

介绍通常后台服务器程序都必须有且只有一个进程,那么如何单进程呢?本例子是通过flock函数对/var/run/myserver.pid记录pid文件的进行加锁若加锁不正常,说明后台服务进程已经在运行了,这时则直接报错退出若加锁成功,说明…

索尼录音笔怎么导出录音内容_录音笔十大品牌名单出炉!录音笔十大品牌排名榜单揭晓!...

录音笔给我们高速发展的生活带来了很大的便利,市场上录音笔品牌繁多,很多数码视听品牌都推出了自己的录音笔产品,那么我们在选购的录音笔的时候如何选择好品牌的录音笔呢?下面一起来看看十款好用的品牌录音笔排行,希望…

快速列出所有字段_快速掌握目标课题的研究现状 | 应用实例

Graphical Abstract摘要本文旨在利用文献分析工具“Bibliometrix”及其交互界面“Biblioshiny”,基于文献数据库的检索结果,快速获取目标课题的关键信息。相较于传统人为反复阅读的方法,该方法可高效实现以下重要功能:拓展和获取更…

linux 引导程序修复工具,linux 引导修复工具

如果你有Windows 系统安装盘/ 启动盘,或者安装了DOS 工具,可以从Windows 进入纯DOS 界面的话,那么可以分别用 fixmbr 命令生成正确的引导文件boot.ini ,和使用 fdisk /mbr 命令修复MBR 。详细请看windows xp 双系统卸载linux ubun…

驱动程序和应用程序之间的体系结构不匹配_修复Win10上的黑屏问题全攻略,并不高深,一看就会...

在Windows 10上,你可能会遇到的最烦人的问题之一是黑屏,因为你不会在屏幕上看到错误代码或消息以获取有关从何处开始进行疑难解答的提示。黑屏的发生可能有多种原因。它可能与最近的显卡驱动程序更新有关,或者可能在包含兼容性问题的功能更新…