基金净值短信内容的拆分
来源:互联网 发布:淘宝金融贷款是真的吗 编辑:程序博客网 时间:2024/04/28 21:21
--CREATE PROCEDURE p_split_sms AS
declare
smscontent VARCHAR2(2000); -- 剩余短信内容
smspart VARCHAR2(100); -- 分拆后单条短信
len INTEGER; -- 剩余短信内容长度
pos INTEGER; -- 短信分拆位置
n INTEGER; -- pos位置的字符ASCII码
n1 INTEGER; -- pos+1位置的字符ASCII码
n2 INTEGER; -- pos+2位置的字符ASCII码
MAXLEN INTEGER := 64; -- 最大短信长度
begin
-- Test statements here
smscontent := '6月22日净值:成长1.4691增长3.91稳健1.092债券1.201服务3.544保本1.567超短债1.0033主题1.869策略1.459沪深三百1.576货币基金万份收益1.8759元,七日年化收益率7.475%';
len := length(smscontent);
-- 短信内容是否需要拆分成多条
WHILE len > MAXLEN LOOP
pos := MAXLEN; -- 短信拆分位置
n1 := ascii(substr(smscontent, pos + 1, 1));
n2 := ascii(substr(smscontent, pos + 2, 1)); -- 可能返回NULL值(指针越界)
-- ...主题1.869策略...(充分考虑pos指针位置,即位于数值任意位置时的相应处理)
-- 下一个字符为数字,或后两字符为小数点+数字形式('5', '.5')
-- ASCII: [0-9]~[48-57], '.'~46
IF ((n1 >= 48 AND n1 <= 57) OR (n1 = 46 AND (n2 >= 48 AND n2 <= 57))) THEN
-- 回溯至第一个非[0-9.]的字符所在位置
WHILE (pos > 0 AND (n >= 48 AND n <= 57) OR n = 46) LOOP -- 匹配[0-9.]
pos := pos - 1;
n := ascii(substr(smscontent, pos, 1));
END LOOP;
END IF;
-- 若数字部分超长,则不考虑数值显示完整性(即无需另起一行)
IF pos < (MAXLEN / 2) THEN
pos := MAXLEN;
END IF;
smspart := substr(smscontent, 1, pos);
smscontent := substr(smscontent, pos + 1);
len := length(smscontent);
dbms_output.put_line(smspart);
END LOOP;
IF (len IS NOT NULL) THEN
-- 最后剩余部分,长度不足MAXLEN
dbms_output.put_line(smscontent);
END IF;
end;
- 基金净值短信内容的拆分
- 走出基金净值的误区
- orale 短信拆分涉及的问题
- 短信的内容提供者
- Android短信开发,短信接收时被拆分的解决方案
- 如何预测基金净值未来的成长性?
- Android短信内容的监听
- android获取短信的内容
- c#短信网关中关于短信内容编码的转换
- 点击短信内容,获取短信内的号码和链接
- 短信服务拆分实现思路
- Android获取新收到的短信内容
- android开发获取短信的内容
- Android中获取短信的内容
- 内容提供者获取手机所有的短信
- SQL拆分内容
- 【python】文件内容拆分
- 读取WIND数据(行情、基金净值等)的SAS程序
- C#-二十五问总结
- sql生成脚本里SET ANSI_NULLS ON
- c#初学者帮帮我
- WINDOWS的保留字
- 控制反转(IOC)和依赖注入(DI)的概念
- 基金净值短信内容的拆分
- 成功注冊dll組件後,在調用時出現Server.CreateObject 失敗 的問題(asp)
- CRM管理理念及市场产品分析说明
- 利用GetPrivateProfileString读取配置文件(.ini)
- asp.net2.0数据访问(2)-入门-创建业务逻辑层
- 嵌入式 面试题 (不定期更新,2007.07.17)
- NHibernate 初用,改后成功了,不过仍有问题
- ASP.NET 2.0 利用存储过程写了个简单登陆!
- Eclipse europa