ORACLE 行列转换通用存储过程,已经转换的MSSQL版本
下面是ORACLE行列转换通用存储过程:
1、
Function Fun_Split_Str(p_Str Varchar2, p_Division Varchar2, p_Seq Int)
Return Varchar2 Is
v_First Int;
v_Last Int;
Begin
If p_Seq < 1 Then
Return Null;
End If;
If p_Seq = 1 Then
If Instr(p_Str, p_Division, 1, p_Seq) = 0 Then
Return p_Str;
Else
Return Substr(p_Str, 1, Instr(p_Str, p_Division, 1) - 1);
End If;
Else
v_First := Instr(p_Str, p_Division, 1, p_Seq - 1);
v_Last := Instr(p_Str, p_Division, 1, p_Seq);
If (v_Last = 0) Then
If (v_First > 0) Then
Return Substr(p_Str, v_First + 1);
Else
Return Null;
End If;
Else
Return Substr(p_Str, v_First + 1, v_Last - v_First - 1);
End If;
End If;
End Fun_Split_Str;
/*
*/
Procedure Pro_Rows_Column(p_Table In Varchar2,
p_Keep_Cols In Varchar2,
p_Pivot_Cols In Varcha
相关文档:
Oracle RAC 中OCR 和Voting Disk 备份在我的blog: Oracle RAC 常用维护工具和命令 中已经有说明,现在再次把它单独拿出做一个说明, 因为OCR 和 Voting Disk 对于RAC 系统来说太重要了。
Oracle RAC 常用维护工具和命令 ......
1. 每天的8:00到23:00每隔5分钟执行一个sql语句的JOB
--建立一个存储过程
CREATE OR REPLACE PROCEDURE p_jobtest IS
v_hh VARCHAR2(2);
BEGIN
v_hh := to_char(SYSDATE, 'hh24');
IF v_hh >= '08' AND v_hh <= '22' THEN
--你的sql语句 ......
今天做项目的时候,将null传入Oracle的表中,就是不成功
经过尝试得出了两个解决方案:
1.传入OracleDateTime.NULL
2.Nullable<DateTime> optime = DBNull.Value; 传入optime(开始网上找的答案是Nullable<DateTime> optime = null发现还是会报错) ......
作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表;
语法:
MERGE INTO [your table-name] [rename your table here]
USING ( [write your query here] )[rename your query-sql and using just like a table]
ON ([conditional expression here] AND [...]...)
WHEN MATHED THEN [here ......
存储过程 包含三部分: 声明,执行部分,异常。
可以有无参数程序和带参数存储过程。
无参程序语法
1 create or replace procedure NoParPro
2 as ;
3 begin
4&n ......