我要实现的功能查询abc 是否存在若存在则删除,继续执行owners表和owners表查出有用字段放入临时表abc中,再去执行批处理语句返回整型数组
但报有异常
sun.jdbc.odbc.JdbcOdbcBatchUpdateException: SQL Attempt to produce a ResultSet from executeBatch
这句代码是是否有错误?
System.out.println("petId");
String sql1="if exists(select * from abc)";
String sql2="drop table abc ";
String sql3="select owners.name as nam,pets.name into abc from owners inner join pets on owners.id=pets.id";
String sql4="select * from abc ";
Statement stmt=data.getConnectin().createStatement();
stmt.addBatch(sql1);
stmt.addBatch(sql2);
stmt.addBatch(sql3);
stmt.addBatch(sql4);
int[] id=stmt.executeBatch();
// System.out.println("长度是"+rs.length);
------解决方案--------------------
建议写个存储过程吧,然后在jdbc里直接掉一下存储过程。
------解决方案--------------------
给你个我以前写的例子
1.oracle表及存储过程
- BatchFile code
--Author bluedn--Description 测试Java 调用Oracle 存储过程返回值-- 返回列表 建一个程序包create or replace package Pack_Schlist is type Sch_Cursor is ref cursor;end Pack_Schlist;--它是把游标(可以理解为一个指针),作为一个out 参数来返回值的create or replace procedure Proc_SearchResultList(p_CURSOR out Pack_Schlist.Sch_Cursor) isbegin open p_CURSOR for select * from Proc_Table;end Proc_SearchResultList;-- Create Proc_SearchResultOne 有返回值的存储过程(非列表)create or replace procedure Proc_SearchResultOne(PARA1 in VARCHAR2, PARA2 out VARCHAR2) Asbegin select name into PARA2 from Proc_Table where ID = PARA1;end Proc_SearchResultOne;-- Create Proc_Insert 插入数据:无返回值的存储过程create or replace procedure Proc_Insert(ID in varchar2, Name in varchar2) isbegin insert into PROC_TABLE(ID,NAME) VALUES (ID,Name);end Proc_Insert;-- Create tablecreate table PROC_TABLE( ID VARCHAR2(100), NAME VARCHAR2(100))tablespace USERS pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );
------解决方案--------------------
存储过程在sql里直接建立的,
create procedure pNew
@para1 varchar(255),
@para2 int output
AS
declare @strSQL nvarchar(4000)
begin
--执行过程
end
------解决方案--------------------
结题,给分吧,谢谢
------解决方案--------------------
写存储过程上面的都说了,
但有一点建议:要先在查询分析器写好代码测试,不要直接在JAVA里面测试