MSSQL和Oracle中使用参数的区别
2016-03-21 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
MSSQL和Oracle中的参数传值总结:
①在MSSQL中,
1.定义的参数使用@;
2.传参类型可以直接在new SqlParameter("@id",SqlDbType.Int) 写出来就可以;
3.传参的不要在@id之类的上面单引号。
②在Oracle中,
1.定义的参数使用?代替,起占位作用
2.传参类型可以在new SqlParameter("@id",SqlDbType.Varchar)
写出来,发现这里直接写实在不好转换,把转换丢在PL/SQL语句里面方便点: to_number(?)
③安全性
以前喜欢拼接字符串,然后用一段代码过滤:
/// <summary>
/// 检查传入字符串是否包含sql语句
/// </summary>
/// <param name="str">传入字符串</param>
/// <returns>包含返回true,不包含返回false</returns>
public bool FilterSql(string str)
{
string word = "and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join|cmd";
if (str == null)
{
return false;
}
foreach (string i in word.Split('|'))
{
if (str.ToLower().IndexOf(i + " ") > -1 || (str.ToLower().IndexOf(" " + i) > -1))
{
return true;
}
}
return false;
}
①在MSSQL中,
1.定义的参数使用@;
2.传参类型可以直接在new SqlParameter("@id",SqlDbType.Int) 写出来就可以;
3.传参的不要在@id之类的上面单引号。
②在Oracle中,
1.定义的参数使用?代替,起占位作用
2.传参类型可以在new SqlParameter("@id",SqlDbType.Varchar)
写出来,发现这里直接写实在不好转换,把转换丢在PL/SQL语句里面方便点: to_number(?)
③安全性
以前喜欢拼接字符串,然后用一段代码过滤:
/// <summary>
/// 检查传入字符串是否包含sql语句
/// </summary>
/// <param name="str">传入字符串</param>
/// <returns>包含返回true,不包含返回false</returns>
public bool FilterSql(string str)
{
string word = "and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join|cmd";
if (str == null)
{
return false;
}
foreach (string i in word.Split('|'))
{
if (str.ToLower().IndexOf(i + " ") > -1 || (str.ToLower().IndexOf(" " + i) > -1))
{
return true;
}
}
return false;
}
仁科信息
2024-07-24 广告
2024-07-24 广告
Oracle EBS运维是确保企业资源规划系统稳定、高效运行的关键环节。它涵盖了系统监控、性能优化、故障排查与恢复等多方面内容。通过持续的监控和数据分析,运维团队能够及时发现并解决潜在问题,保障系统的稳定性和安全性。同时,他们还需要与业务部...
点击进入详情页
本回答由仁科信息提供
展开全部
①在MSSQL中,
1.定义的参数使用 @;
2.传参类型可以直接在 new SqlParameter("@id",SqlDbType.Int) 写出来就可以;
3.传参的不要 在 @id 之类的上面单引号,不管 @id 是什么数据类型;(PS:20131112更新,血的教训!!!)
②在Oracle中,
1.定义的参数使用 ?,可以用 ? 完全代替,诶,以前不知道。
2.传参类型可以在 new SqlParameter("@id",SqlDbType.Varchar) 写出来,发现这里直接写实在不好转换,把转换丢在PL/SQL语句里面方便点: to_number(?)
1.定义的参数使用 @;
2.传参类型可以直接在 new SqlParameter("@id",SqlDbType.Int) 写出来就可以;
3.传参的不要 在 @id 之类的上面单引号,不管 @id 是什么数据类型;(PS:20131112更新,血的教训!!!)
②在Oracle中,
1.定义的参数使用 ?,可以用 ? 完全代替,诶,以前不知道。
2.传参类型可以在 new SqlParameter("@id",SqlDbType.Varchar) 写出来,发现这里直接写实在不好转换,把转换丢在PL/SQL语句里面方便点: to_number(?)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用什么参数的区别,比如呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询