易截截图软件、单文件、免安装、纯绿色、仅160KB

PL/SQL 实现基本的四则运算

CREATE OR REPLACE PACKAGE BODY PACK_RISK_FUNCTION AS
--- 1 将符号替换成#号 或许可以用正则表达式,但是嫌麻烦还是直接用替换
FUNCTION CHANGE_OPERATOR(FORMULA VARCHAR2)
RETURN VARCHAR2
AS
V_FORMULA VARCHAR2(100);
BEGIN
V_FORMULA := REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(FORMULA,'(',''),')',''),'+','#'),'-','#'),'*','#'),'/','#');
RETURN V_FORMULA;
END CHANGE_OPERATOR;
/**---- 2 将字符串按照 # 解析成不同字段**/
---- 创建一个TABLE变量 CREATE OR REPLACE TYPE STR_SPLIT IS TABLE OF VARCHAR2 (4000);
---- 调用函数语句 SELECT * from TABLE(SUB_FORMULA(FORMULA))
FUNCTION SUB_FORMULA(FORMULA VARCHAR2)
RETURN STR_SPLIT PIPELINED
AS
V_LENGTH NUMBER :=LENGTH(FORMULA);----字符串长度
V_INDEX NUMBER; ---- #的位置
V_START NUMBER:=1; ---开始位置
BEGIN
WHILE V_START <= V_LENGTH LOOP
V_INDEX:= INSTR(FORMULA,'#',V_START);
IF V_INDEX =0 THEN
PIPE ROW(SUBSTR(FORMULA,V_START));
V_START :=V_LENGTH + 1;
ELSE
PIPE ROW(SUBSTR(FORMULA,V_START,V_INDEX-V_START));
V_START := V_INDEX + 1;
END IF;
END LOOP;
RETURN;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE || ' ' || SQLERRM);
RETURN;
END SUB_FORMULA;
/**
---3 四则运算函数**/
FUNCTION OPERATION_GLOBAL (FORMULA IN RISKITEMINFO.RECKONNAME%TYPE)
RETURN VARCHAR2
IS
FORMULA_V RISKITEMINFO.RECKONNAME%TYPE :='('||FORMULA||')';
V_FORMULA VARCHAR2(500); ------储存转成#号后的公式
FIELD_NO VARCHAR2(100); ------字段编号
FIELD_VALUE VARCHAR2(100); --- 数据值
FIELD_TYPE NUMBER(2); ---- 数据类型
RESULT_V NUMBER;
/* V_COUNT NUMBER;*/
R_RESULT VARCHAR2(100);
BEGIN
------ 调用CHANGE_OPERATOR函数,将四则运算符号转换成#
V_FORMULA :=PACK_RISK_FUNCTION.CHANGE_OPERATOR(FORMULA);
-----创建游标C1_CURSOR 用于保存 公式分割后的字段名
DECLARE
CURSOR C1_CURSOR IS
SELECT * from TABLE(PACK_RISK_FUNCTION.SUB_FORMULA(V_FORMULA));
BEGIN
OPEN C1_CURSOR;
FETCH C1_CURSOR INTO FIELD_NO;
WHILE C1_CURSOR%FOUND LOOP
-----根据字段名查找最后日期的数据进行计算
   SELECT A.FIELDTYPE,B.FIELDVALUE INTO FIE


相关文档:

Java如何防sql注入

采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:
          String sql= "select * from users where username=? and password=?;
          PreparedStatement preState = conn.prepare ......

SQL Server 2000数据库的定时备份设置

利用SQL2000的定时备份功能,能很好对服务器上的重要数据信息进行完整的定时备份,以便在服务器瘫痪或数据库出现损坏时及时的进行恢复工作,以确保平时的工作能正常的进行。下面向大家介绍一下SQL2000定期备份的设置方法,具体如下:
1.         打开SQL2000的企业管理器
2.&nbs ......

SQL面试题小结

 
我想面试过软件开发的朋友都会碰到sql方面的面试题,这个可以说是面试必考的。这里拿几个例子开拓一下思路。
1.      
有这样一张表
教师号
星期
是否有课
1
1

2
3

1
2

1
2

要得出这样的数据:
姓名
星期一
星期二
星期三
星期四
星期五
1
1 ......

讲解SQL Server数据库被挂马的解决方案

讲解SQL Server数据库被挂马的解决方案
http://www.cnhacker.com/Security/Plan/200808/t20080822_6383.html
案例:一个网站遭遇入侵,破坏相当严重,SQL数据库被挂马,所有的表里面大部分字段都被多次重复插入挂马代码,查看日志,还好没有涉及到服务器的安全,只是数据库那里出现了很多异常警告而已,网站确实存在漏洞 ......

Sql Server2005 转 Access

在网上找了好多关于SqlServer2005转access的方法,大多都是用sql语句,而我不想用那种方法,于是我自己摸索出来如何将SqlServer数据库转换成access,方法可能有点笨,不过完成了转换的功能。下面是具体步骤:
1.打开Access,建立一个后缀名为.mdb的空的数据库文件(默认后缀可能是.accdb,我们把它改为.mdb就可以了),然后 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号