|
|
51CTO旗下网站
|
|
移动端

2.6 从其他语言中调用PL/SQL

《Oracle PL/SQL程序设计(第6版)(上下册)》第2章创建和运行PL/SQL代码,本章将展示如何在一个最基本的层面上(使用SQL*Plus)完成上述任务,同时对这些细小差别进行大致的讲述。本节为大家介绍从其他语言中调用PL/SQL。

作者:方鑫 译来源:人民邮电出版社|2017-09-06 20:16

2.6 从其他语言中调用PL/SQL

很快地,我们要用到从C、Java、Perl、PHP或其他语言中调用PL/SQL。这是一个合理的需求,如果我们有过跨语言的开发经验,我们一定知道,把不同语言的特有的数据类型——尤其是像数组、记录和对象这样的复杂数据类型——揉和在一起是多么的困难,更不用说不同的参数语法,或者厂商的“标准”应用程序接口(API,如Microsoft ODBC——开放数据连接)了。

现在来举几个从外部调用PL/SQL的简短示例。假设我们有一个函数,这个函数接收字符串类型的ISBN输入,返回对应的图书名称:

  1. /* File on web: booktitle.fun */  
  2. FUNCTION booktitle (isbn_in IN VARCHAR2)  
  3. RETURN VARCHAR2  
  4. IS  
  5. l_title books.title%TYPE;  
  6. CURSOR icur IS SELECT title FROM books WHERE isbn = isbn_in;  
  7. BEGIN  
  8. OPEN icur;  
  9. FETCH icur INTO l_title;  
  10. CLOSE icur;  
  11. RETURN l_title;  
  12. END; 

在SQL*Plus中,有多种方式调用这个函数,最简便的方式像这样:

  1. SQL> EXEC DBMS_OUTPUT.PUT_LINE(booktitle('0-596-00180-0'))  
  2. Learning Oracle PL/SQL  
  3. PL/SQL procedure successfully completed. 

接下来,看看我如何从以下环境中调用这个函数。

C语言,使用Oracle预编辑器(Pro*C)。

Java语言,使用JDBC。

Perl语言,使用Perl DBI和DBD::Oracle。

PHP语言。

PL/SQL Server Pages。

这些示例纯粹是演示性质的——例如,用户名和密码都是硬编码,程序也仅仅把输出显示在标准设备上。而且,作者也不打算对每一行代码进行讲解。这些示例仅仅是让我们了解,在不同的语言环境中,我们会遇到哪些处理模式。

喜欢的朋友可以添加我们的微信账号:

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

程序设计实践双语版

程序设计实践并不只是写代码。程序员必须评论各种折衷方案,在许多可能性之中做出选择、排除错误、做测试和改进程序性能,还要维护自己或其...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊