闲记人生
自我介绍
切换风格
订阅我的Blog
博客日历
文章归档...
最新发表...
博客统计...
网站链接...
资源
===========================================================
初学java (1)
===========================================================
终于,要写oracle 的pl/sql 不能做过程了。其实,要写的东西很简单,就是让oracle 支持简单的正则表达式。你也许知道oracle 10g 已经支持它了,但是很不幸我的数据库是9i。

终于,要写oracle 的pl/sql 不能做过程了。其实,要写的东西很简单,就是让oracle 支持简单的正则表达式。你也许知道oracle 10g 已经支持它了,但是很不幸我的数据库是9i。
于是,写了个java
/*java Hello.java */
public class Hello {
public static void he{
system.out.println("Hello world!");
}
public static void main(String[] args) {
he();
}
}

javac Hello.java
java Hello
C:temp>javac Hello.java

C:temp>java Hello
Hello World!

C:temp>loadjava -user abc/def@gis Hello.class
将代码装入数据库

在sql*plus 下运行
create PROCEDURE P_HELLO
as language java name
'Hello.he()';

到测试了
SQL> exec p_hello()

PL/SQL procedure successfully completed.

这里println的输出到了udump下的跟踪文件中,找一下,
*** 2008-07-24 10:19:25.359
Hello World!

这个测试用了好几个小时,中间遇到了一些问题。

1.
dbms_java 丢失

数据库为
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production

想在数据库上运行一些java 程序,运行loadjava 是有报错
$ loadjava -user abc/def Hello.class
Error while computing shortname of pjavalike/JavaRegular
ORA-06550: line 1, column 13:
PLS-00201: identifier 'DBMS_JAVA.SHORTNAME' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

于是查看数据库,发现dbms_java 包找不到了,dbms_java_test 倒是还在。
itpub 上有处理的方法,
在init.ora中设置java_pool,并停启db
java_pool_size=96m
运行initjavavm.sql必需的对像.
SQL>conn /as sysdba
SQL>@$ORACLE_HOME/javavm/install/initjvm.sql
还没有去试这个脚本,重新找了个数据库做的测试。

2。loadjava 在书上看是推荐用.class 的,但是.java 也是可以的。
还可以在数据库上看到java的源码,方便改动。

li2 发表于:2008.07.24 10:36 ::分类: ( oracle ) ::阅读:(29次) :: 评论 (3) :: 引用 (0)
[回复]

顶一个,请回顶评论一下,谢谢

短短的长 评论于:2008.07.24 18:24
[回复]

顶一个,请回顶评论一下,谢谢

动静相交 评论于:2008.07.24 18:25
[回复]

呵呵,写的不错,点点一下,

沙沙 评论于:2008.07.24 19:54

发表评论
标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)