易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

sql server 中常用的日期函数

从dateTime类型数据中获取季度:
select   cast(datepart(q,sign_date)   as   varchar(2))+'季度'    
一.sql server日期时间函数
1.   当前系统日期、时间
     select getdate()  
2. dateadd   在向指定日期加上一段时间 ......

黑客攻破SQL服务器系统的十种方法

无论是使用手工试探还是使用安全测试工具,恶意攻击者总是使用各种诡计从你的防火墙内部和外部攻破你的SQL服务器系统。既然黑客在做这样的事情。你也需要实施同样的攻击来检验你的系统的安全实力。这是理所当然的。下面是黑客访问和攻破运行SQL服务器的系统的十种诡计。
1.通过互联网直接连接
这些连接可以用来攻击没有防 ......

C# 编写SQL SERVER 2005 的存储过程


以下是一个查询IP地址归属地的CLR存储过程,三步:
1、用C#来做DLL,代码如下:
//====================================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using Microsoft.Sq ......

SQL命令查询视图定义语句

用SQL命令查询视图定义语句,可以用以下两种方法:
sp_helptext '视图名' --多行显示
SELECT text from sysobjects so INNER JOIN syscomments sc ON so.id=sc.id  WHERE so.id=OBJECT_ID('视图名')--单行显示
......

xp 下安装 spl server express 没有sql server服务

有时间安装了sql server 之后没有服务的情况,不用卸载不用重装,你把 SQL EXPRESS 再覆盖装一边就可以了,这个服务是从这个组件里面提供的。
下载地址:http://www.microsoft.com/downloadS/details.aspx?familyid=220549B5-0B07-4448-8848-DCC397514B41&displaylang=zh-cn ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号