作为曾经呆过证券公司营业部的从业未遂人员,兼十年老韭菜,对我大A还是有蜜汁感情的。看着树莓派里空空荡荡的PGSQL,突发奇想,尝试把今天的A股数据导进来?
之前写过一个基于MSSQL的工具,把行情软件中导出的数据存入数据库。懒得改了继续用它,第一步还是存入MSSQL,然后计划建一个Linked Server到树莓派,然后把数据导出到PGSQL中。
Linked Server可以基于ODBC。PostgreSQL提供了ODBC驱动。下载地址:PostgreSQL: File Browser
我选了最新的64位版。安装完毕后直接用Windows的搜索功能搜odbc,然后打开ODBC数据源(64位),在系统DSN中添加一个数据源:
Server是树莓派的IP地址,Port 5432是PG默认的端口;Database、User Name、密码则是需要在PG已经配置的。完事了按一下Test,需要能看到Connection Successful。
接着打开SSMS配置链接服务器。
需要注意的点:
1、提供程序要选Microsoft OLE DB Provider for ODBC Drivers;
2、数据源与刚才配置的ODBC数据源名称要一致。
3、后续引用远程数据库服务器时将使用此处链接服务器的填写值。
要点:需要再次输入pgsql的用户名和密码。
然后就可以导入数据了。这里有个小麻烦的地方,我还没找到像操作MSSQL的那种连结构带数据直接写远程表的方法,所以只能拿OpenQuery先救个场了。好在创建表的兼容性还可以,直接用ssms的脚本生成工具生成表结构代码,稍微改造一下在pgsql上先把表创建了。字段如果带半角括号之类的,要用反斜杠(\)来转义。如: "市盈率\(pe\)[20221102]" varchar(20) NULL
创建成功后在ssms里写语句:
insert into PGSQL.a.[public].A221102
select * from T60A
--或者
--insert into openquery(PGSQL,'select * from A221102')
--select * from T60A
好了,先试下哪些股票的概念中直接包含信创:
select
[代码],[名称],[现价],[流通股本(亿)],[总股本(亿)]
,[每股净资产],[每股公积金],[每股盈利],[市盈率\(pe\)[20221102]]
,[市净率],[销售毛利率%[20220930]],[所属概念],[所属行业]
,[主营产品类型],[主营产品名称],[前十大流通股东名称]
from PGSQL.a.[public].a221102 where 所属概念 like '%信创%'
order by [流通股本(亿)],[现价]
颇有几个老朋友。好的,你们的销售毛利润我知道了,价格谈判的时候自己看着办吧,哈哈。