【问题标题】:generic stored procedures in oracleoracle中的通用存储过程
【发布时间】:2009-12-16 19:14:12
【问题描述】:

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

【问题讨论】:

    标签: sql oracle generics stored-procedures


    【解决方案1】:

    Generic = 动态 SQL,“本机动态 SQL”(立即执行)或 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。灵活性是有代价的。

    【讨论】:

      【解决方案2】:

      你肯定需要EXECUTE IMMEDIATE 声明。

      【讨论】:

        【解决方案3】:

        EXECUTE IMMEDIATE 做你想做的事。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-13
          • 2020-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-03
          • 2011-12-29
          相关资源
          最近更新 更多