请教一个用oracle 存储过程执行java代码的问题
之前用loadjava将sqlServer的sqljdbc4.jar已经装载到oracle中,并且建立了CREATEORREPLACEANDRESOLVEJAVASOUR...
之前用loadjava 将sqlServer的sqljdbc4.jar已经装载到oracle中,并且建立了
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED LXY.SENDSMS
as
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
public class Go {
public static void sendMessage(String message) {
String driverClassName="com.
。。。。
然后建立存储过成调用
CREATE OR REPLACE procedure LXY.sms(message varchar2)
as language java name 'Go.sendMessage(String)';
最后执行
exec sms('fff');
call sms('f')
*
ERROR at line 1:
ORA-29531: no method sendMessage in class Go
请教一下它为什么提示sendMessage方法不在Go类里? 展开
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED LXY.SENDSMS
as
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
public class Go {
public static void sendMessage(String message) {
String driverClassName="com.
。。。。
然后建立存储过成调用
CREATE OR REPLACE procedure LXY.sms(message varchar2)
as language java name 'Go.sendMessage(String)';
最后执行
exec sms('fff');
call sms('f')
*
ERROR at line 1:
ORA-29531: no method sendMessage in class Go
请教一下它为什么提示sendMessage方法不在Go类里? 展开
2个回答
展开全部
1)确定代码编译没有问题?
2)有没有package name?
3)试试 'go.sendMessage(String)'
2)有没有package name?
3)试试 'go.sendMessage(String)'
追问
您好,我现在可以运行call了,但是报错说
SQL> call sms('hello');
java.lang.ClassNotFoundException: com/microsoft/sqlserver/jdbc/SQLServerDriver
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:165)
at Go.sendMessage(SENDSMS:12)
而且我用其他工具toad查看oracle中的java object,发现sqljdbc里面的class全部都是无效状态,请问这是怎么办?
追答
按上述错误描述,应该是数据库驱动包没有得到正确引用。
2011-10-18
展开全部
可能是驱动包被你换了位置了 可以重新导入看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询