exec存储过程做了什么,ORACLE中怎么执行存储过程
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网络空间、营销软件、网站建设、新会网站维护、网站推广。
本文目录一览
1,ORACLE中怎么执行存储过程
我试验过了,就是exec 存储过程名或者execute 存储过程名(参数),请你在仔细确认一下,你的存储过程名写没写对呀,或者你没有进入sqlplus中?---- 以上,希望对你能有帮助。
你的参数变换的种类多吗,我们做报表,每天晚上把所有的参数变换都做一次分析,然后保存在一个中间表中,前台WEB页面查询的实际上是中间表的结果!
2,exec 后面跟有一个存储过程的输出参数怎么写好
存储过程内部也很有讲究。在asp页面上显示返回参数,要先关闭记录集才行几种ASP调用存储过程的方法:1 这也是最简单的方法,两个输入参数,无返回值:set connection = server.createobject("adodb.connection")connection.open someDSNConnection.Execute "procname varvalue1, varvalue2"将所有对象清为nothing,释放资源connection.closeset connection = nothing2 如果要返回 Recordset 集:set connection = server.createobject("adodb.connection")connection.open someDSNset rs = server.createobject("adodb.recordset")rs.Open "Exec procname varvalue1, varvalue2",connection将所有对象清为nothing,释放资源rs.closeconnection.closeset rs = nothingset connection = nothing
应该不行,它是数据库规定的一种格式,建存储过的时候是 create proc us_name用的时候 就使用 exec us_name 调用,我觉得如果你不写exec 数据库没法区分你的存储过程名就叫是什么东西,是个表名?视图?变量?但是你用了这个exec关键字,数据库管理系统就知道你是想调用一个存储过程了
3,sql 存储过程 exec spexecutesql
sp_executesql 支持对 Transact-SQL 字符串中指定的任何参数的参数值进行替换,但是 EXECUTE 语句不支持。因此,由 sp_executesql 生成的 Transact-SQL 字符串比由 EXECUTE 语句所生成的更相似。SQL Server 查询优化器可能将来自 sp_executesql 的 Transact-SQL 语句与以前所执行的语句的执行计划相匹配,以节约编译新的执行计划的开销。
使用 EXECUTE 语句时,必须将所有参数值转换为字符或 Unicode 并使其成为 Transact-SQL 字符串的一部分
希望你能理解这一段,我是不太明白
EXEC 和 SP_EXECUTESQL 的区别
1、 性能:
官方描述:sp_executesql stmt 参数中的 Transact-SQL 语句或批处理在执行 sp_executesql 语句时才编译。随后,将编译 stmt 中的内容,并将其作为执行计划运行。该执行计划独立于名为 sp_executesql 的批处理的执行计划。sp_executesql 批处理不能引用调用 sp_executesql 的批处理中声明的变量。sp_executesql 批处理中的本地游标或变量对调用 sp_executesql 的批处理是不可见的。对数据库上下文所做的更改只在 sp_executesql 语句结束前有效。如果只更改了语句中的参数值,则 sp_executesql 可用来代替存储过程多次执行 Transact-SQL 语句。因为 Transact-SQL 语句本身保持不变,仅参数值发生变化,所以 SQL Server 查询优化器可能重复使用首次执行时所生成的执行计划。
说通俗一点就是:如果用 EXEC 执行一条动态 SQL 语句,由于每次传入的参数不一样,所以每次生成的 @sql 就不一样,这样每执行一次SQL SERVER 就必须重新将要执行的动态 Sql 重新编译一次 。但是SP_EXECUTESQL 则不一样,由于将数值参数化,要执行的动态 Sql 永远不会变化,只是传入的参数的值在变化,那每次执行的时候就不用重新编译,速度和效率自然有所提升。
2、灵活性
从上面的例子我们已经能够看出 SP_EXECUTESQL 命令比 EXEC 命令更灵活,因为它提供一个接口,该接口及支持输入参数也支持输出参数。
3、安全性
EXEC 执行纯动态SQL,执行时可能无法使用预编译的执行计划,关键是不安全,可以导致 SQL 注入 ,而 SP_EXECUTESQL 执行参数化动态 SQL ,执行时能使用预编译的执行计划,而且保存存储过程时就可以确定可以使用的预编译的执行计划,而且最重要的是“安全”,天然免疫SQL 注入
参考资料: EXEC和sp_executesql的区别 http://www.studyofnet.com/news/439.html
网站标题:exec存储过程做了什么,ORACLE中怎么执行存储过程
网站地址:http://myzitong.com/article/ejoppc.html