博主资料

留言 加为好友 收藏

用户名:  carlwu
年龄:  35

个人统计

用户名: carlwu
等级: 初来乍到
威望: 270
积分: 770
在线时间: 50 小时
日志总数: 50
评论数量: 510
访问次数: 495901
建立时间: 2006-01-17
RSS订阅       手机访问

最新评论

文章搜索

文章列表

友情链接

最近访问的人:

七水桥
2009-05-25 16:39:51
向自己的美好生活..
2009-05-07 21:35:46
az235
2009-04-04 18:53:29
真情互连网1
2009-03-22 13:12:09
wgy
2009-03-21 11:34:34
intelpc
2009-03-19 20:13:51
如何渡过金融危机?
2009-02-28 17:08:31
signsmile
2009-02-23 16:15:29
半边山
2009-02-10 10:01:37
电子商务研究(B2C)
2009-02-06 17:23:08

日志文章

2006年02月14日 15:38:53

在PL/SQL Developer中开发Java存储过程

PL/SQL Developer是一款功能强大的IDE,我们可以用它来开发Oracle数据库的PL/SQL程序。该软件的易学易用特色赢得了不少Oracle数据库开发人员的青睐。有关该IDE的细节,请参考http://www.allroundautomations.com/plsqldev.html。下面就以Java存储过程开发为例,简单介绍一下这款IDE的使用。

Java存储过程(Java Stored Procedures),顾名思义,就是用Java写的存储过程。Java存储过程同PL/SQL存储过程一样,运行在Oracle服务器端。PL/SQL存储过程和Java存储过程可以相互调用,但是Java存储过程可以利用Java语言的功能来完成一些PL/SQL存储过程完成不了的工作。


1. 首先请打开PL/SQL developer, 输入用户名/密码和数据库的服务名,如下图所示:
进入系统后,您可以看见左边的各类导航栏,如下图所示:



2.在下图的Java Source文件夹上右击,系统会弹出一个浮动菜单,单击菜单条上的“New…”菜单,系统要求用户输入Java存储过程的名称和类名,如下图所示:


我们输入FirstJava作为类名并按OK按钮,然后我们就进入了PL/SQL Developer的Program Window,如下图所示:







上面程序窗口的第一行是
create or replace and compile java source named FirstJava as
这一行要求Oracle创建一个名为“FirstJava”的Java存储过程并编译它,我们不用修改这一行。第二到第七行是我们非常熟悉的普通Java类的源代码,一旦看到它,我们便可以随心所欲地修改这些Java代码了。
我们在FirstJava类中添加两个静态方法。在第一个方法(hello)中没有数据库交互,第二个方法(get_current_time)查询数据库并返回了数据库服务器的当前日期。

请注意get_current_time方法中注册Oracle驱动类和获得数据库连接的写法。因为上面的Java类已经在Oracle环境中运行,所以普通JDBC连接中的连接串(jdbc:oracle:thin:user/pwd@hostname:1521:instance_name)在该方法中没有出现,java.lang.Class.forName(“oracle.jdbc.driver.OracleDriver”)在该方法中也没有出现。但是,您千万不要忘记类签名前的import语句,这时的Program Window如下图所示:



然后我们按下F8键或者单击左上角的Execute按钮,编译我们刚刚完成的FirstJava类。编译完成后,我们可以在状态栏上看到Compiled successfully的提示,如上图所示。

3.编译完成后,接下来的工作便是测试我们所写的Java存储过程。
3.1 在PL/SQL中打开一个Command Window, 如下图所示:



3.2 在命令行窗口中执行下面的SQL代码创建两个测试函数
create or replace function HELLO(v_name in varchar2) return VARCHAR2 as
   language java name 'FirstJava.hello(java.lang.String) return java.lang.String';
/

create or replace function GET_SYSDATE return VARCHAR2 as
   language java name 'FirstJava.get_current_time() return java.lang.String'; 
/
注意上面SQL语句中PL/SQL函数HELLO,GET_SYSDATE和FirstJava类中的两个方法hello(java.lang.String)和get_current_time()相对应,PL/SQL函数的参数类型、个数和Java方法的参数类型、个数要一致。执行结果如下图所示:




3.3 在PL/SQL中测试刚才创建的两个测试函数
打开PL/SQL左边的导航窗口的Functions文件夹,我们可以看到刚刚创建的HELLO函数,右击该函数,然后单击弹出菜单的Test项,如下图所示:


  
这时我们可进入PL/SQL Developer提供的函数测试窗口,PL/SQL Developer还为我们提供了测试模板,如下图所示:




我们将上述函数测试代码中的v_name改为'Carl',注意冒号的位置,然后按下F8键运行该测试,结果会出现在右下角的小窗口内。如下图所示:


同样我们也可以测试另外一个函数,该函数调用了FirstJava类的get_current_time() 方法获得数据库的时间。


从上面简单的例子中,PL/SQL Developer IDE的强大功能可略见一斑,它可以帮助我们非常轻松地编辑、调试PL/SQL程序。


 

类别: 无分类 |  评论(9) |  浏览(5079) |  收藏
一共有 9 条评论
9楼 [匿名]哈哈 2009年05月18日 17:08:12 Says:
不错,转载了!
8楼 [匿名]纵横 2009年01月05日 16:08:11 Says:
点击F8的时候出来提示:java未安装。怎么回事?
7楼 [匿名]liujun 2008年07月24日 13:02:39 Says:
写的就是好!
6楼 [匿名]guest 2008年07月11日 17:41:15 Says:
好文章, 多谢, 简单明了
5楼 [匿名]感谢 2008年05月24日 09:40:41 Says:
感谢
4楼 [匿名]感谢 2008年05月24日 09:39:33 Says:
感谢
3楼 [匿名]guest 2006年06月10日 19:53:09 Says:
up
好贴一定要顶!!!!
2楼 [楼主]Carl 2006年03月10日 08:26:55 Says:
多谢支持!
1楼 [匿名]guest 2006年03月08日 13:01:36 Says:
我是陌生人,好文章,好文章啊,一目了然,清晰
发表评论
看不清楚,换一张