上交所行情文件导入数据库
事情的起因很簡單,需要將股票收盤行情導入數據庫,因為科創板交易時間延長,需要將原有的程序進行改造,眾所周知,程序員永遠是不夠用的,只能自己解決這個問題。
方式是用定時器調用shell腳本。
上交所的mktdt00.txt使用“|”作為分隔符。
核心代碼是將mktdt00.txt轉成程insert into? table? values( ) 然后有sqlplus導入數據庫。
代碼一:
#!/bin/bash
dbfpath=/home/oracle/dbf_insert/stockkcb/dbf
IFS=$'\n'
for entry in $(cat $dbfpath/mktdt00.txt)
do
??? IFS='|'
??? arr=($entry)
if? [?? ${arr[0]} == 'MD001' ];?? then ##? index
?????? a="?? INSERT INTO mktdt00 VALUES(? ""'"
??????? a=$a"${arr[1]}""','""${arr[2]}""',"
??????? a=$a"${arr[5]}"",""${arr[6]}"",""${arr[4]}"
??????? a=$a",""${arr[7]}"",""${arr[8]}"",""${arr[9]}"",0,0,""${arr[3]}"
??????? a=$a",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0? )? ;? "
??????? echo $a>>$dbfpath/mktdt00.sql
elif [?? ${arr[0]} == 'MD002' ] || [ ${arr[0]} == 'MD003' ]?? || [?? ${arr[0]} == 'MD004' ] ;
then?????
?????? ## stock bond? fund
??????? a=" INSERT?? INTO mktdt00 VALUES(? ""'"
??????? a=$a"${arr[1]}""','""${arr[2]}""',"
??????? a=$a"${arr[5]}"",""${arr[6]}"",""${arr[4]}"",""${arr[7]}"",""${arr[8]}"
??????? a=$a",""${arr[10]}"",""${arr[11]}"",""${arr[13]}"",""${arr[3]}"",0"
??????? a=$a",""${arr[12]}"",""${arr[15]}"",""${arr[16]}"",""${arr[19]}"",""${arr[20]}"
??????? a=$a",""${arr[14]}"",""${arr[17]}"",""${arr[18]}"",""${arr[21]}"",""${arr[22]}"
??????? a=$a",""${arr[23]}"",""${arr[24]}"",""${arr[27]}"",""${arr[28]}"",""${arr[25]}"
??????? a=$a",""${arr[26]}"",""${arr[29]}"",""${arr[30]}"" );"
??????? echo $a>>$dbfpath/mktdt00.sql
???? else
??????? echo "success!"
fi
done
echo "commit;">>$dbfpath/mktdt00.sql
'MD001' 是指數格式和 其他的格式有所不同。
代碼二
#!/bin/sh
. ~oracle/.bash_profile
user='數據庫用戶名'
pwd='數據庫密碼'
dbfpath=/home/oracle/dbf_insert/stockkcb/dbf
cd $dbfpath
rm -rf *
wget? http://內網ipip/mktdt00.txt? #下載局域網中的交易所行情文件mktdt00.txt
sh? $dbfpath/readkcb.sh #執行上一下txt轉sql 腳本
if [ -s? mktdt00.sql?? ];then
???? sqlplus? $user/$pwd? <<EOF? >/tmp/imp.log
????? truncate table mktdt00;
????? @$dbfpath/mktdt00.sql
????? quit
EOF
轉載于:https://www.cnblogs.com/ianxu/p/11176606.html
總結
以上是生活随笔為你收集整理的上交所行情文件导入数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不孕不育一般会有什么症状?
- 下一篇: 成都欢乐谷胆小的可以玩吗