用SQL查询实时汇率

本文介绍了如何使用SQL从中国银行网站抓取并处理HTML数据以获取实时汇率。通过创建schema、table和procedure,解析非标准HTML内容,提取货币名称、各种汇率价格等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
用SQL查询实时汇率
-用文本方式集成html网页数据
Internet中大量数据都是html格式的,对它的集成有着很重要的意义。html格式类似于xml,如果能将html修正为标准的xml文件,用xpath查询获取数据是最理想的,Sqlhub支持这种集成凡是。但现实中由于html的格式非常灵活,并且经常出现少标签,错误标签等,很难转换为标准的xml。在这种情况下只能用文本方式来处理数据了。
下面是从中国银行网站查询汇率的例子:
create or replace schema txt type txt url '' ;
create or replace table txt.huilv
url 'http://www.boc.cn/cn/common/service.jsp?querytype=bydate&t_oneday=2007%2F10%2F01' charset 'gb2312' rowsep '/n' fieldsep '$$' (
f1 VARCHAR
);
create or replace procedure huilv(d) return rowset as
begin
execute(
'alter table txt.huilv set
url ''http://www.boc.cn/cn/common/service.jsp?querytype=bydate&t_oneday='
        + replace(d,
'-' , '%2F' ) + '''' );
select getseg(f1,
',' , 1 ) 货币名称 ,
        getseg(f1,
',' , 2 ) 现汇买入价 ,
        getseg(f1,
',' , 3 ) 现钞买入价 ,
        getseg(f1,
',' , 4 ) 卖出价    ,
        getseg(f1,
',' , 5 ) 基准价     ,
        getseg(f1,
',' , 6 ) 中行折算价 ,
        getseg(f1,
',' , 7 ) 发布时间  ,
 from (select strsum(f1,
',' ) f1
          from (select floor((rowno() -
1 ) / 7 ) rowno, replace(f1, ' ' ) f1
                  from (select substr(f1,
1 , instr(f1, '<' ) - 1 ) f1
                          from (select substr(f1, instr(f1,
'>' , 1 ) + 1 ) f1
                                  from txt.huilv limit
207 , 182 )
                         where substr(f1,
1 , instr(f1, '<' ) - 1 ) != '' ))
         group rowno)
 where rowno() >
1 ;
end;
select * from huilv(curdate());
 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值