代码如下
string sql = "SELECT * FROM LIS_V_LABTESTSAMPLE WHERE PATIENT_ID=:P";
HlsAccess.CommandText = sql;
HlsAccess.Parameters.Clear();
HlsAccess.Parameters.Add(":P", Oracle.DataAccess.Client.OracleDbType.NVarchar2).Value = patId;
这里指定了参数的类型为Nvarchar2,但是数据库字段类型是Varchar2,这时就会造成字段类型错误导致了表扫描,最后导致查询速度慢。
解决方案就是参数改成Varchar2即可。