oracle中的通用存储过程

时间:2009-12-16 10:34:35

标签: sql oracle generics stored-procedures

我想在oracle中编写一个通用存储过程。例如,我想将表名作为输入,然后对其进行处理。 我想学习一些示例通用代码以及在oracle中编写通用存储过程的基础知识。 任何人都可以提供代码片段/链接到网站或其他材料吗?

3 个答案:

答案 0 :(得分:5)

Generic =动态SQL,“Native Dynamic SQL”(Execute Immediate)或DBMS_SQL包。 http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm#i1006546

通常在编译过程时会解析SQL语句,但如果表名称未知,则无法进行此操作 - 表格当然在编译时也不存在。

以下是有关该主题的文档的链接,以及示例。

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/dynamic.htm#LNPLS011

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm#ADFNS008

注意事项 - 如果可以使用静态SQL,请不要使用动态SQL。灵活性是有代价的。

答案 1 :(得分:0)

你肯定需要EXECUTE IMMEDIATE声明。

答案 2 :(得分:0)

EXECUTE IMMEDIATE做你想做的事。