JAVA执行ORACLE存储过程的问题,为什么一直会报错?请各位高手帮帮忙,比较急3Q
后台代码如上图存储过程是这样的createorreplacepackagepkg_pvisprocedureset_pv(pvvarchar2);functionget_...
后台代码如上图
存储过程是这样的
create or replace package pkg_pv isprocedure set_pv(pv varchar2);
function get_pv return varchar2;
procedure set_pv1(pv1 varchar2);
function get_pv1 return varchar2;
end;
create or replace package body pkg_pv isv varchar2(20);
v1 varchar2(20);
procedure set_pv(pv varchar2) is begin v:=pv;
end;
function get_pv return varchar2 is begin return v; end;
procedure set_pv1(pv1 varchar2) is begin v1:=pv1;
end;
function get_pv1 return varchar2 is begin return v1; end;
end;
begin pkg_pv.set_pv('大盈江一级');
pkg_pv.set_pv1('2012-07');
end;
select * from v_emp;
我在PLSQL中是能执行的 但到了JAVA中已执行就报如下错误:
org.springframework.jdbc.BadSqlGrammarException: Hibernate-related JDBC operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'ORCL.PKG_PV'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored 展开
存储过程是这样的
create or replace package pkg_pv isprocedure set_pv(pv varchar2);
function get_pv return varchar2;
procedure set_pv1(pv1 varchar2);
function get_pv1 return varchar2;
end;
create or replace package body pkg_pv isv varchar2(20);
v1 varchar2(20);
procedure set_pv(pv varchar2) is begin v:=pv;
end;
function get_pv return varchar2 is begin return v; end;
procedure set_pv1(pv1 varchar2) is begin v1:=pv1;
end;
function get_pv1 return varchar2 is begin return v1; end;
end;
begin pkg_pv.set_pv('大盈江一级');
pkg_pv.set_pv1('2012-07');
end;
select * from v_emp;
我在PLSQL中是能执行的 但到了JAVA中已执行就报如下错误:
org.springframework.jdbc.BadSqlGrammarException: Hibernate-related JDBC operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'ORCL.PKG_PV'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored 展开
展开全部
'ORCL.PKG_PV' ???
orcl? 是你的实例名吧?
如果是你当前连接用户的包,那么应该是 <包名>.<存储过程名>
如果不是你当前连接用户的包,那么应该是 <用户名>.<包名>.<存储过程名>
怎么也不会出现实例名的吧!
还是把你的sql贴出来看看!!!
orcl? 是你的实例名吧?
如果是你当前连接用户的包,那么应该是 <包名>.<存储过程名>
如果不是你当前连接用户的包,那么应该是 <用户名>.<包名>.<存储过程名>
怎么也不会出现实例名的吧!
还是把你的sql贴出来看看!!!
追答
1. create or replace package body pkg_pv
pkg_v 明明是包的名称
2. orcl? 是你的实例名吧?
如果是你当前连接用户的包,那么应该是 .
如果不是你当前连接用户的包,那么应该是 ..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误报的很明显呀, 必须声明标识符 'ORCL.PKG_PV'。你那个sql语句的call名称错误了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询