请教高手:JAVA调用存储过程,存储ordsys.ordimage出现异常

bigeyewolf 2002-01-14 04:19:10
我有一个表emp,包括empid(number), empname(varchar2), photo(ordsys.ordimage),
下面有一个存储过程用传进去的参数增加一条记录,
和一段JAVA,用来调用存储过程,
存储过程和JAVA都编译通过了,但运行JAVA到ops.executeUpdate()处出现异常:“java.sql.SQLException: ORA-01460: 未实现或无理的转换请求”;
请各位高手帮我看看有什么问题,多谢

// 这是我的java
String psCallStr = "{call Insert_Ordimage_Test(?, ?)}"; //不知道是不是这个调用的字符串写错了?

OracleConnection oc = (OracleConnection) connection; //这个connection是已经得到的没错的连接
PreparedStatement ps = oc.prepareStatement(psCallStr);
OraclePreparedStatement ops = (OraclePreparedStatement) ps;
ops.setString(1, "abc");
BLOB img = new BLOB(oc, bPic);
ops.setBLOB(2, img);
int rowCount = ops.executeUpdate();
oc.commit();

// 下面是我的存储过程
CREATE OR REPLACE PROCEDURE "SYSTEM"."INSERT_ORDIMAGE_TEST" (
name in varchar2,
image in BLOB)
is
ordImg ordsys.ordimage;
begin
insert into emp values(
seq_emp.nextval,
name,
ordsys.ordimage(ordsys.ordsource(empty_blob(), null, null, null, sysdate, 1),
null, null, null, null, null, null, null)
);

select photo into ordImg from emp
where ename = name
for update;

ordImg := ordsys.ordimage(ordsys.ordsource(empty_blob(), null, null, null, sysdate, 1),
null, null, null, null, null, null, null);

ordImg.setProperties;

update emp set photo = ordImg
where ename = name;
end
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigeyewolf 2002-01-15
  • 打赏
  • 举报
回复
按照上面两为仁兄的意见改了一下,但还是在那个地方发生异常,但异常信息现在变了,变成:

java.sql.SQLException: ORA-06550: 第 1 行, 第 12 列:
PLS-00103: 出现符号 "INSERT_ORDIMAGE_TEST"在需要下列之一时:
:=.(@%;
符号 ":=" 被替换为 "INSERT_ORDIMAGE_TEST" 后继续。
ariso 2002-01-14
  • 打赏
  • 举报
回复
caolyf(小草)是dui de
caolyf 2002-01-14
  • 打赏
  • 举报
回复
试一下

CallableStatement cstmt =
conn.prepareCall ("begin Insert_Ordimage_Test(?, ?); end;");

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧