微盛投资

wdz输出的sql文件,导入沪深股票数据到MS-SQLServer中,sqlcmd出现内存不足的问题

有客户来信咨询,在将wdz输出的sql文件,导入到MS-SQLServer中时,sqlcmd出现内存不足的提示。

相关链接:https://wstocknet.blog.163.com/blog/static/2181221342013228113713740/
https://www.wstock.net/wstock/wsmin.htm


解决方法:
出现该情况的原因,估计与输出的sql文件过大有关。例如将大量的沪深市场数据输出到一个sql文件中,导致这个sql文件过大,从而导致sqlcmd在将该sql文件导入MS-SQLServer时出现内存不足。

因此,可在利用wdz程序,输出沪深股票数据为sql文件时,通过划分时间段来输出多个sql文件,从而减小每一个sql文件的大小,这样即可利用sqlcmd导入到MS-SQLServer中。
========================================

另外,也可在 wdz程序中将每只股票的数据输出为一个单独的sql文件(请参考wdz程序中的 浏览文件-->转文本配置),这样可得到几千个sql文件(每个sql文件都不会太大),然后 利用批处理(.bat)支持循环的特点,写一个批处理,自动导入这几千个文件到MS-SQLServer中。

批处理文件,大致如下(请自行修改 d:\shsz_sql\ 为您自己的sql文件所在文件夹)

REM 循环取得每一个sql文件
REM 微盛投资  www.wstock.net
for /f "delims=" %%i in ('dir d:\shsz_sql\*.sql /s /aa /b /on') do call :sql_pos %%i

goto exit_pos

:sql_pos
set mySrcFile=%1
sqlcmd -S localhost\sqlexpress -U sa -P sa -d testWSTOCK -i %mySrcFile%

:exit_pos

评论