oracle中sum字符串方法
2012-07-03 11:33
260 查看
CREATE OR REPLACE FUNCTION SumString(i_TableName IN VARCHAR2,
i_GroupColName IN VARCHAR2,
i_ResultColName IN VARCHAR2,
i_GroupColValue IN VARCHAR2,
i_Separator IN VARCHAR2)
RETURN VARCHAR2 IS
TYPE T_Cur IS REF CURSOR;
C_Cur T_Cur;
V_Sql VARCHAR2(2000);
V_Result VARCHAR2(2000);
V_Tmp VARCHAR2(200);
V_Cnt NUMBER := 0;
BEGIN
V_Result := ' ';
V_Sql := 'SELECT ' || i_ResultColName || ' FROM ' || i_TableName ||
' WHERE ' || i_GroupColName || ' = ' || i_GroupColValue;
OPEN C_Cur FOR V_Sql;
LOOP
FETCH C_Cur
INTO V_Tmp;
EXIT WHEN C_Cur%NOTFOUND;
IF V_Cnt = 0 THEN
V_Result := V_Tmp;
ELSE
V_Result := V_Result || i_Separator || V_Tmp;
END IF;
V_Cnt := V_Cnt + 1;
END LOOP;
CLOSE C_Cur;
RETURN V_Result;
END SUMSTRING;
i_GroupColName IN VARCHAR2,
i_ResultColName IN VARCHAR2,
i_GroupColValue IN VARCHAR2,
i_Separator IN VARCHAR2)
RETURN VARCHAR2 IS
TYPE T_Cur IS REF CURSOR;
C_Cur T_Cur;
V_Sql VARCHAR2(2000);
V_Result VARCHAR2(2000);
V_Tmp VARCHAR2(200);
V_Cnt NUMBER := 0;
BEGIN
V_Result := ' ';
V_Sql := 'SELECT ' || i_ResultColName || ' FROM ' || i_TableName ||
' WHERE ' || i_GroupColName || ' = ' || i_GroupColValue;
OPEN C_Cur FOR V_Sql;
LOOP
FETCH C_Cur
INTO V_Tmp;
EXIT WHEN C_Cur%NOTFOUND;
IF V_Cnt = 0 THEN
V_Result := V_Tmp;
ELSE
V_Result := V_Result || i_Separator || V_Tmp;
END IF;
V_Cnt := V_Cnt + 1;
END LOOP;
CLOSE C_Cur;
RETURN V_Result;
END SUMSTRING;
相关文章推荐
- Oracle 字符串截取 从后向前截取方法
- Oracle多行记录合并/连接/聚合字符串的几种方法 [转]
- oracle 字符串切割成结果集方法
- 对字符串的“sum”——Oracle里实现类似MySQL group_concat函数
- Oracle多行记录合并/连接/聚合字符串的几种方法(转)
- Oracle多行记录合并/连接/聚合字符串的几种方法
- Oracle多行转换成字符串方法总结
- Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法
- Order By中空字符串的处理方法(Oracle)
- (转)oracle中如何对字符串进行去除空格的方法
- Oracle多行记录合并/连接/聚合字符串的几种方法
- oracle中字符串连接以及在函数中常见问题的解决方法
- Oracle 分组及连接组内字符串方法
- Oracle多行记录字符串综合操作几种方法
- [z]Oracle 多行记录合并/连接/聚合字符串的几种方法
- Oracle字符串连接的使用方法
- Oracle 多行记录合并/连接/聚合字符串的几种方法
- Oracle字符串连接的方法
- ORACLE 中字符串转换为数组的函数方法
- 【oracle】Oracle中字符串连接的实现方法【转】