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
相关文档:
create table tree_table
(
id number,
pId number,
orderNumber number,
name varchar2(255)
)
select tt.*
from tree_table tt
start with tt.pId = 0
connect by prior tt.id = ttd.pId
order siblings by orderNumber ......
今天做项目的时候,将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 ......
具体步骤就不多说了 ,要导出的SQLSERVER表叫 LDJCUS,主键 Uid (int 自动增长列),导入到Oracle总报错:对象名无效 ,去掉主键列就可以,不知道为什么?难道自动增长的主键列就不能导入到Oracle中???疑惑。。。。 ......