ดูโค๊ดเอาหล่ะกันเน๊อะ มีความขี้เกียจตั้งแต่เห็นจำนวนไฟล์ละ (คือแบบเยอะมากกกกกกก) แต่จำเป็นต้องใช้ก็เลยเกิดแลปแบบด่วน ๆ
– ใช้โครงสร้างของ HDC
– ไฟล์ที่นำเข้าอยู่ในรูปแบบของโครงสร้างมาตรฐานข้อมูลด้านสุขภาพ กระทรวงสาธารณสุข (43 แฟ้ม)
– ปล้ำ Servlet ของ HDC โดยไม่ติดตั้งระบบนี่ดูยาก ๆ อ่ะ รอปรึกษา Phoubon Ict
– อันนี้ช่วงรอไฟล์นำเข้า
#Import delimited file to database;
IMPORTEDFOLDER="imported"
mkdir -p "../${IMPORTEDFOLDER}"
zip_filename="${zip%%.*}"
unzip "${zip}" -d "${zip_filename}"
mv -f "${zip}" "../${IMPORTEDFOLDER}"
for file in $(find ./ -name '*.txt' -or -name '*.TXT'); do
fileName=${fileName%.txt}
filePath="$(dirname $(readlink -f "${file}"))/${file##*/}"
#TODO: Extend to GNU Parallel
sh importdelimited.sh "${filePath}" "${fileName}"
fileCount=$((fileCount+1))
#rm -rf "${zip_filename}"
echo "${fileCount} files completed."
#!/bin/sh
#Import delimited file to database;
IMPORTEDFOLDER="imported"
fileCount=0
fileName=""
filePath=""
mkdir -p "../${IMPORTEDFOLDER}"
for zip in *.zip; do
zip_filename="${zip%%.*}"
unzip "${zip}" -d "${zip_filename}"
mv -f "${zip}" "../${IMPORTEDFOLDER}"
for file in $(find ./ -name '*.txt' -or -name '*.TXT'); do
fileName=${file##*/}
fileName=${fileName%.txt}
filePath="$(dirname $(readlink -f "${file}"))/${file##*/}"
#TODO: Extend to GNU Parallel
sh importdelimited.sh "${filePath}" "${fileName}"
fileCount=$((fileCount+1))
done
#rm -rf "${zip_filename}"
done
echo "${fileCount} files completed."
#!/bin/sh
#Import delimited file to database;
IMPORTEDFOLDER="imported"
fileCount=0
fileName=""
filePath=""
mkdir -p "../${IMPORTEDFOLDER}"
for zip in *.zip; do
zip_filename="${zip%%.*}"
unzip "${zip}" -d "${zip_filename}"
mv -f "${zip}" "../${IMPORTEDFOLDER}"
for file in $(find ./ -name '*.txt' -or -name '*.TXT'); do
fileName=${file##*/}
fileName=${fileName%.txt}
filePath="$(dirname $(readlink -f "${file}"))/${file##*/}"
#TODO: Extend to GNU Parallel
sh importdelimited.sh "${filePath}" "${fileName}"
fileCount=$((fileCount+1))
done
#rm -rf "${zip_filename}"
done
echo "${fileCount} files completed."
สคริปสำหรับนำเข้าฐานข้อมูลของ MySQL
#Import delimited file to database;
#Usage : sh importdelimited.sh {Source} {Target}
SQL="SET SESSION sql_mode=''; LOAD DATA LOCAL INFILE '$1' REPLACE INTO TABLE $2 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;"
echo "$(date -u) $2:${SQL}" >> "../${LOGFILE}" 2>&1
mysql -u${USERDB} -p${PASSDB} ${DB} -e "${SQL}"
#!/bin/sh
#Import delimited file to database;
#Usage : sh importdelimited.sh {Source} {Target}
LOGFILE="importlog.log"
DB="hdc"
USERDB="a1a1a1"
PASSDB="b1b1b1"
SQL=""
SQL="SET SESSION sql_mode=''; LOAD DATA LOCAL INFILE '$1' REPLACE INTO TABLE $2 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;"
echo "$(date -u) $2:${SQL}" >> "../${LOGFILE}" 2>&1
mysql -u${USERDB} -p${PASSDB} ${DB} -e "${SQL}"
rm -f $1
#!/bin/sh
#Import delimited file to database;
#Usage : sh importdelimited.sh {Source} {Target}
LOGFILE="importlog.log"
DB="hdc"
USERDB="a1a1a1"
PASSDB="b1b1b1"
SQL=""
SQL="SET SESSION sql_mode=''; LOAD DATA LOCAL INFILE '$1' REPLACE INTO TABLE $2 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;"
echo "$(date -u) $2:${SQL}" >> "../${LOGFILE}" 2>&1
mysql -u${USERDB} -p${PASSDB} ${DB} -e "${SQL}"
rm -f $1
ส่วนใครจะปรับโค๊ดให้ดูเมพขึ้นก็ตามสบายนะครับ ถ้าให้ดีก็ดิสคัสกันต่อก็ได้ เรานูปเชลสคริปท์ อย่างอื่นก็นูป (ดัก)
Published by Man Friday
Application Developer, Photographer and WordPress aficionado. Particularly interested in relational database design, In usability, UX and accessibility on software development. I just wear glasses, Lives in Ubonratchathani, Thailand.
View more posts