mysql LOAD DATA INFILE OPTIONALLY ENCLOSED BY '(' AND ')'

61 views Asked by At

I have some problems with the LOAD DATA INFILE practically the path of the text file is unable to load on mysql.

I tried with many combinations but I can't, could you kindly help me

I advance a question, with the LOAD DATA INFILE method this loads all the records or just the first coincidence? in my sample more are expected ADOP ADEP ADUSF records.

the text block start with ADSTART and ends before the next one ADSTART, characters such as £ or $ are also expected on values records.

Is the approach I should follow this LOAD DATA INFILE or integrate php or python for data extraction?

details below

ADSTART ADID(APP£AAA£000) STATUS(A) TYPE(A)
ADOP WSID(RZGY) OPNO(001) JOBN()
ADSTART ADID(APP£001) STATUS(A)
ADOP WSID(NULL) OPNO(001) JOBN()
ADOP WSID(ENG1) OPNO(005) JOBN(JAAABR14)
ADDEP PREADID() PREWSID(NULL) PREOPNO(001)
   DESCR() PR£INT(A)
ADUSF UFNAME(JBLIB) UFVALUE(000)
ADUSF UFNAME(SUBJOBUSER) UFVALUE(SU06)
ADOP WSID(ENG1) OPNO(010) JOBN(JBBBBR15)
ADDEP PREADID() PREWSID(NULL) PREOPNO(001)
ADUSF UFNAME(JBLIB) UFVALUE(000)
ADUSF UFNAME(SUBJOBUSER) UFVALUE(SU06)
ADDEP PREADID() PREWSID(ENG1) PREOPNO(005)
   DESCR() PR£INT(A)
ADSTART ADID(APP£BBB£002) STATUS(P)
ADOP WSID(NULL) OPNO(001) JOBN()
ADOP WSID(ENG1) OPNO(005) JOBN(JCCCBR14)
ADDEP PREADID() PREWSID(NULL) PREOPNO(001)
ADDEP PREADID(APP£001) PREWSID(ENG1) PREOPNO(005)
   DESCR() PR£INT(A)
ADUSF UFNAME(JBLIB) UFVALUE(000)
ADUSF UFNAME(SUBJOBUSER) UFVALUE(SU06)

def table appjs for test

CREATE TABLE appjs (
    adid VARCHAR(100),
    status VARCHAR(100),
    wsid VARCHAR(100),
    opno VARCHAR(100),
    jobn VARCHAR(100),
    preadid VARCHAR(100),
    prewsid VARCHAR(100),
    preopno VARCHAR(100),
    ufname VARCHAR(100),
    ufvalue VARCHAR(100)
);

i'm use client DBeaver 23.2.5

instruction: (10.4.20-MariaDB)

LOAD DATA INFILE 'adid_full.txt'
INTO TABLE appjs
FIELDS TERMINATED BY ' ' OPTIONALLY ENCLOSED BY '(' AND ')'
LINES TERMINATED BY 'ADSTART'
(adid, status, wsid, opno, jobn, preadid, prewsid, preopno, ufname, ufvalue);

error:

Errore SQL [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AND ')'
LINES TERMINATED BY 'ADSTART'
(adid, status, wsid, opno, jobn, prea...' at line 3

Sorry if I didn't enter the result I needed:

follow sample data desired final

select * from appjs order by adid;

adid       |status|wsid|opno|jobn    |preadid|prewsid|preopno|ufname    |ufvalue|
-----------+------+----+----+--------+-------+-------+-------+----------+-------+
APP£001    |A     |    |001 |        |       |       |       |          |       |
APP£001    |A     |ENG1|005 |JAAABR14|       |NULL   |001    |JBLIB     |000    |
APP£001    |A     |ENG1|010 |JBBBBR15|       |NULL   |001    |JBLIB     |000    |
APP£001    |A     |ENG1|010 |JBBBBR15|       |NULL   |001    |SUBJOBUSER|SU06   |
APP£001    |A     |ENG1|010 |JBBBBR15|       |ENG1   |005    |          |       |
APP£001    |A     |NULL|001 |        |       |       |       |          |       |
APP£BBB£002|P     |NULL|001 |        |       |       |       |          |       |
APP£BBB£002|P     |ENG1|005 |JCCCBR14|       |NULL   |001    |          |       |
APP£BBB£002|P     |ENG1|005 |JCCCBR14|APP£001|ENG1   |005    |JBLIB     |000    |
APP£BBB£002|P     |ENG1|005 |JCCCBR14|APP£001|ENG1   |005    |SUBJOBUSER|SU06   |

Thanks in advance.

0

There are 0 answers