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;
}
仁科信息
2024-07-24 广告
Oracle EBS运维是确保企业资源规划系统稳定、高效运行的关键环节。它涵盖了系统监控、性能优化、故障排查与恢复等多方面内容。通过持续的监控和数据分析,运维团队能够及时发现并解决潜在问题,保障系统的稳定性和安全性。同时,他们还需要与业务部... 点击进入详情页
本回答由仁科信息提供
腾讯企业邮箱跃驰
高粉答主

2015-04-16 · 醉心答题,欢迎关注
知道顶级答主
回答量:7.6万
采纳率:91%
帮助的人:2.7亿
展开全部
①在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(?)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来学习的DBA
2015-04-16 · TA获得超过298个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:210万
展开全部
使用什么参数的区别,比如呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式