首页 > 数据库 >Oracle sqlldr笔记

Oracle sqlldr笔记

时间:2023-09-04 15:02:46浏览次数:36  
标签:sqlldr guid1 0X 笔记 replace XXXXXXXXXXXXXXXX GUID1 Oracle guid2


需求:有两列0X开头的guid,需要合并并转换为10进制数值。

控制文件如下:

LOAD DATA
INFILE “/home/xxxdbfile/xxxdb/xxx.txt”
truncate
INTO TABLE xxx_USER.TTTTTTABLE
FIELD TERMINATE BY “ ”
TRAILING NULLCOLS—这个是指如果上面的列中,有空的列载入,不报错
(
ID sequence(max,1),
GUID1,
GUID2,
ADD_TIME SYSDATE
guid “to_number(replace(:guid1,’0X’,)||replace(:guid2),’0X’,’XXXXXXXXXXXXXXXX’)”)

序列:
id,sequence(max,1)
常量:
type CONSTANT “1”,
合并两列:
guid1,
guid2,
guid “to_number(replace(:guid1,’0X’,)||replace(:guid2),’0X’,’XXXXXXXXXXXXXXXX’)”
使用oracle函数一定要双引号。使用前面的字段,需要 加冒号:

但是这样有个问题:表必须得建立两个冗余字段guid1和guid2。
如果这样:
guid1 FILLER,
guid2 FILLER
导入的时候会报
SQL*Loader-291: Invalid bind variable GUID1 in SQL string for column GUID1这样的错误,
解决办法:
v_guid1 BOUNDFILLER,
v_guid2 BOUNDFILLER
“to_number(replace(:v_guid1,’0X’,)||replace(:v_guid2),’0X’,’XXXXXXXXXXXXXXXX’)”

这样v_guid1相当于一个变量了。

 

第二个问题,如果每个文件名是动态的,可以有两种方式:

1.    动态生成脚本,用shell写脚本sed替换

2.    在ctl文件里面不指定数据文件名,而是写在外面。

 

标签:sqlldr,guid1,0X,笔记,replace,XXXXXXXXXXXXXXXX,GUID1,Oracle,guid2
From: https://blog.51cto.com/u_16245757/7350851

相关文章

  • java ClassLoader笔记(一)
    作者:fbysss关键字:ClassLoader一、SunJDKClassloader体系1.层次关系Bootstrap:加载rt.jar<-Extension:加载 jre/ext/*.jar <-System:加载CLASSPATH中的jar<-UserDefined加载用户自定义包类2.特殊点  BootstrapClassLoader为C++所写,ExtensionClassLoader的parent为null,其中......
  • SpringCloud笔记
    微服务技术栈:                                              ......
  • 【刷题笔记】35. Search Insert Position
    题目Givenasortedarrayandatargetvalue,returntheindexifthetargetisfound.Ifnot,returntheindexwhereitwouldbeifitwereinsertedinorder.Youmayassumenoduplicatesinthearray.Example1:Input:[1,3,5,6],5Output:2Example2:I......
  • FFT & NTT 学习笔记
    FFTFFT是一种高效实现DFT和IDFT的方式,可以在\(O(n\logn)\)的时间内求多项式的乘法。多项式的点值表示不同于用每项的系数来表示一个多项式,我们知道对于给定的\(n+1\)个点值,可以确定唯一的\(n\)次多项式。这种用点值表示多项式的方法叫点值表示法。如果知道\(F(x......
  • c++ opencv 16bit tiff图像学习笔记
    1、读取图像基本信息:长、宽、通道数、灰度最大值、最小值、均值、方差值和灰度直方图#include<opencv2/opencv.hpp>usingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){//读入图像Matsrc=imread("C:\\Users\\MingYi-LZQ\\Desktop\\1......
  • 多线程学习笔记
     1.进程和线程进程是指一个程序,例如QQ,打开会占用一定的内存和空间,会有产生和消亡。线程是由进程创造,一个进程可以有多个线程。单线程:在同一个时刻,只允许执行一个线程。多线程:在同一个时刻,允许执行多个线程。并发:同一时刻,多个任务交替执行,例如一台电脑同时运行qq和迅雷,看着貌似是有......
  • 新人笔记-集合1.0
    importjava.util.ArrayList;publicclassDemo01{publicstaticvoidmain(String[]args){//publicArrayList()创建一个空的集合对象//ArrayList<String>a=newArrayList<>();效果和下方相同ArrayList<String>a=newArrayList&l......
  • 笔记4- vivado simulation 使用
    1、创建激励测试文件输入激励代码1`timescale1ns/1ps23moduleled_sim();45regclk;6regrst_n;78wire[3-1:0]led_out;910parameterCLK_CY......
  • 天蝎软件-操作系统 课程笔记(更新中)
    Windows介绍Windows版本PC(常用)Server(常用)Windows常用命令系统命令的本质一个独立的程序,调用已经储存在目录里的程序,如果改变文件名字,将找不到这个程序环境变量Cmd通过环境变量来找到命令对应的程序。在Windows系统中,用来指定可以在Cmd中运行的命令所对应的程序所在......
  • 笔记应该怎样去记?
    背景过去中学的时候,老是对笔记本嗤之以鼻,觉得记笔记很费时间,而且知识就那么些,差不多都懂了为什么要记笔记?直到现在,发现一些事情不记录笔记根本记不住。如果以前不需要笔记本,而现在却需要了,是不是说明自己学习能力变弱了呢?自己现在到底是否需要笔记本呢?如果需要,又应该如何正确利用......