分类: Oracle
2008-05-22 17:38:22
来源: | ||||||
| ||||||
您现在已经利用 Ruby 和 Oracle 执行了基本的 CRUD(CREATE、RETRIEVE、UPDATE 和 DELETE)操作。现在该介绍结合使用 Ruby 和 Oracle 存储过程的示例了。 Ruby 与 Oracle 存储过程。 PL/SQL 是许多基于 Oracle 数据库的应用程序频繁使用的语言。由于用户已经对 Oracle 存储过程投入了大量的资源、时间以及从实际经验中吸取的教训,因此您使用的任何语言可以访问大量已证明的功能是很重要的。 清单 7 显示用于访问 PL/SQL 内置存储过程 DBMS_UTILITY.DB_VERSION(接受两个 OUT 参数)的代码,您的代码显示通过这两个 OUT 参数传回的结果。 清单7:builtInDBVersionCompat.rb
图 8 显示了运行该 Ruby 代码的显示结果。
清单 7 还有另一个需要注意的有趣地方。该清单演示了 Ruby 符号(本例中为 :bind_value)的使用,还显示了使用 DBI::Handle(本例中名为 sth_db)函数方法调用特定于该 Ruby DBI 数据库驱动程序的功能。 清单 8 中的代码演示了使用 Ruby DBI 运行内置的存储函数 DBMS_METADATA.GET_DDL。由于多方面的原因,这个内置函数很有用,下面有关如何获取 Ruby DBI 中某个函数的返回值的示例就是其中一个原因。该函数需要将对象类型和对象名与几个可选参数一起传入。在这种情况下,您只传入两个必需的参数,并使用名称批注传递它们。 清单8:builtInGetDDL.rb
DBMS_METADATA.GET_DDL 函数可返回创建我们指定的表所需的 DDL。注意,这是有用的信息,因为它为我们提供了我们重新创建表时将需要的 DDL。返回的 DDL 明显比我们的 CREATE TABLE 语句更具体,因为它显式说明了我们假定的设置。查看这些结果可以更深入地了解 Oracle 数据库的工作,帮助数据库专业人员决定要更改和调整的参数。 除了显示如何访问 Oracle 存储函数的返回值之外,清单 8 还显示了与我们先前使用的不同的绑定变量的方法。在之前具有绑定变量的清单(清单 7)中,我们使用的是位置绑定,这意味着您将问号 (?) 放在数据库执行字符串中,并使用从 1 开始的连续整数来引用值。在清单 8 中,您使用的是名称绑定,这意味着我们放入的是 Ruby 符号(如本例中的 :out1、:in1 和 :in2),稍后通过名称引用这些绑定变量以访问其值。Ruby 对位置绑定与名称绑定的支持与 PL/SQL 对位置参数批注和命名参数批注的支持类似。图 9 显示了运行清单 8(用于创建我们的 STATES 表的 DDL)的结果。
Ruby 与 Oracle:并非所有一切都包括在数据库中 Oracle 专业人员的兴趣并不仅限于 Oracle 数据库;值得关注的还包括配置文件、环境设置,甚至其他 Oracle 产品(如 Oracle 应用服务器)。我们来看几个将 Ruby 用于这些领域的示例。 |