为避免
SQL-注入,所有的update,insert,delete,select全部使用带参数的形式编写
Update TableName Set FiledName=:Fd1 where Id=:Id
ID 
Oracle类型是 Varchar2对应DbType.String
问题来了
,由于类型映射不匹配
,导致在执行
SQL时
Oracle会自动转换类型,这样直接导致无法使用到索引(全部全表扫描),所以update,delete时效率特别差
后修改代码
ID Oracle类型是 Varchar2对应DbType.AnsiString
问题解决了,可以用使用到索引
。 Oracle 数据类型 要绑定为参数的 DbType 枚举 要绑定为参数的 OracleType 枚举  
BFILE 
BFile 
BLOB 
Blob 
CHAR
AnsiStringFixedLength
Char 
CLOB 
Clob 
DATE
DateTime
DateTime 
FLOAT
Single、Double、Decimal
Float、Double、Number 
INTEGER
SByte、Int16、Int32、Int64、Decimal
SByte、Int16、Int32、Number 
INTERVAL YEAR TO MONTH
Int32
IntervalYearToMonth 
INTERVAL DAY TO SECOND
Object
IntervalDayToSecond 
LONG
AnsiString
LongVarChar 
LONG RAW
Binary
LongRaw 
NCHAR
StringFixedLength
NChar 
NCLOB 
NClob 
NUMBER
VarNumeric
Number 
NVARCHAR2
String
NVarChar 
RAW
Binary
Raw 
REF CURSOR 
Cursor 
ROWID
AnsiString
Rowid 
TIMESTAMP
DateTime
Timestamp 
TIMESTAMP WITH LOCAL TIME ZONE
DateTime
TimestampLocal 
TIMESTAMP WITH TIME ZONE
DateTime
TimestampWithTz 
UNSIGNED INTEGER
Byte、UInt16、UInt32、UInt64、Decimal
Byte、UInt16、Uint32、Number 
VARCHAR2
AnsiString
VarChar 
OracleParameter 对象的 Value 属性使用的 InputOutput、Output 和 ReturnValue ParameterDirection 值是 .NET Framework 数据类型,除非输入值是 Oracle 数据类型(例如 OracleNumber 或 OracleString)
。这并不适用于 REF CURSOR、BFILE 或 LOB 数据类型。