oracle中EXECUTE IMMEDIATE是什么意思?如何使用,请用自己理解的语言,通俗的解释出来,谢谢了各位!

[复制链接]
查看11 | 回复5 | 2011-9-8 10:09:41 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-9-8 10:09:41 | 显示全部楼层
EXECUTEIMMEDIATE一般用于执行动态SQL例如:SQLBEGIN2EXECUTEIMMEDIATE(\'SELECT*FROMtest_dysqlWHEREid=1\');3END;4/PL/SQLproceduresuccessfullycompleted.参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/49752e0d0ed5562b6a60fb51.html
回复

使用道具 举报

千问 | 2011-9-8 10:09:41 | 显示全部楼层
请问一下什么是动态SQL?用EXECUTEIMMEDIATE有什么好处?要执行SQL语句的话,我不用EXECUTEIMMEDIATE也可以执行的啊?实在是很模糊。。
回复

使用道具 举报

千问 | 2011-9-8 10:09:41 | 显示全部楼层
这个是用于在存储过程里面.动态的执行SQL语句。例如:有个存储过程,用于检索表的行数。传入的参数是表的名称。这种情况下,你SELECTcount(*)FROMv_变量是无法执行的。你只能定义一个变量vsqlvarchar2(100);然后vsql=\'SELECTcount(*)FROM\'||\'v_变量\'然后调用EXECUTEIMMEDIATE来执行。动态SQL,意思就是你需要执行的SQL语句,不是固定的。要等运行的时候,才能确定下来。也就像上面那个例子,表名是外部传入的。不过动态SQL与EXECUTEIMMEDIATE主要用在存储过程里面。假如你是用C#或者Java之类的开发语言。访问数据库的话。是用不到EXECUTEIMMEDIATE的。
回复

使用道具 举报

千问 | 2011-9-8 10:09:41 | 显示全部楼层
你提到的这个问题我以前遇到过,后来解决了。建议你去北风网看一下他们推出的:Oracle11g最佳培训教程(王二暖Oracle11g教室\\10年经验毫无保留)这个教程参考资料:ww.baidu.com/。http://www.ibeifeng.com/goods.php?id=156。HTMC
回复

使用道具 举报

千问 | 2011-9-8 10:09:41 | 显示全部楼层
是执行字符串中的SQL语句,如:executeimmediate\'select*dual\';
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行