create table gpscoordinate(
id int primary key,
longitude VARCHAR(32),
latitude VARCHAR(32)
name VARCHAR(32),
time VARCHAR(32)
);
CREATE TYPE department_type AS OBJECT (
longitude VARCHAR(32),
latitude VARCHAR(32)
name VARCHAR(32),
time VARCHAR(32)
);
CREATE TYPE dept_array AS TABLE OF department_type;
create or replace package objecttype
as
procedure insert_object(d dept_array);
end objecttype;
create or replace package body objecttype
as
procedure insert_object(d dept_array)
as
begin
for i in d.first .. d.last
loop
insert into gpscoordinate(longitude,latitude,name,time) values(d(i).longitude,d(i).latitude,d(i).name,d(i).time);
end loop;
end insert_object;
end objecttype;//JAVA代码
{
Connection con=Util.getConnection();
con.setAutoCommit(false);
try{ StructDescriptor st = new StructDescriptor ("DEPARTMENT_TYPE",con);
STRUCT[] deptArray = new STRUCT[name.length];
for(int i=0;i<name.length;i++){
Object[] so={longitude[i],latitude[i],name[i],time};
deptArray[i]=new STRUCT(st,con,so);
}
ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor("DEPT_ARRAY", con);
ARRAY deptArrayObject = new ARRAY(arrayDept, con, deptArray);
OracleCallableStatement callStatement = (OracleCallableStatement)con.prepareCall("{call insert_object(?)}");
callStatement.setArray(1, deptArrayObject);
callStatement.execute();
con.commit();
Util.close(con, callStatement, null);
int k=this.getCount();
System.out.println("现有记录条数:"+k);
}catch(Exception e){
con.rollback();
e.printStackTrace();
flag=false;
}
return flag;
}
id int primary key,
longitude VARCHAR(32),
latitude VARCHAR(32)
name VARCHAR(32),
time VARCHAR(32)
);
CREATE TYPE department_type AS OBJECT (
longitude VARCHAR(32),
latitude VARCHAR(32)
name VARCHAR(32),
time VARCHAR(32)
);
CREATE TYPE dept_array AS TABLE OF department_type;
create or replace package objecttype
as
procedure insert_object(d dept_array);
end objecttype;
create or replace package body objecttype
as
procedure insert_object(d dept_array)
as
begin
for i in d.first .. d.last
loop
insert into gpscoordinate(longitude,latitude,name,time) values(d(i).longitude,d(i).latitude,d(i).name,d(i).time);
end loop;
end insert_object;
end objecttype;//JAVA代码
{
Connection con=Util.getConnection();
con.setAutoCommit(false);
try{ StructDescriptor st = new StructDescriptor ("DEPARTMENT_TYPE",con);
STRUCT[] deptArray = new STRUCT[name.length];
for(int i=0;i<name.length;i++){
Object[] so={longitude[i],latitude[i],name[i],time};
deptArray[i]=new STRUCT(st,con,so);
}
ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor("DEPT_ARRAY", con);
ARRAY deptArrayObject = new ARRAY(arrayDept, con, deptArray);
OracleCallableStatement callStatement = (OracleCallableStatement)con.prepareCall("{call insert_object(?)}");
callStatement.setArray(1, deptArrayObject);
callStatement.execute();
con.commit();
Util.close(con, callStatement, null);
int k=this.getCount();
System.out.println("现有记录条数:"+k);
}catch(Exception e){
con.rollback();
e.printStackTrace();
flag=false;
}
return flag;
}
解决方案 »
- ora 01017 报错怎么解决?
- 如何测试oracle带输出参数自定义函数执行时间
- 关于oracle 中load 命令的问题
- 简单SQL问题
- oracle中如何取刚插入记录的主键值
- vc ado oracle update 无法更新,异常跳出,郁闷
- 在oracle10中,能通过浏览器对已经建好的表直接插入数据吗?
- 请问我如何给一个视图的付权限
- 触发器中怎么操作其他方案中的表
- 两个关于在PRO*C中声明变量的小问题,1、char C1_TICKET_ID [DEF_CNT][13]其中的DEF_CNT是什么意思?2、某变量被定义为工A varchar[20
- 我安装了一个mysql,打不开客户端
- 有关plsql中record的用法
--你没有申明此过程create or replace package objecttype
as
procedure insert_object(d dept_array);
end objecttype;
/
--先执行下创建包头就申明了此过程create or replace package body objecttype
as
procedure insert_object(d dept_array)
as
begin
for i in d.first .. d.last
loop
insert into gpscoordinate(longitude,latitude,name,time) values(d(i).longitude,d(i).latitude,d(i).name,d(i).time);
end loop;
end insert_object;
end objecttype;
as
procedure insert_object(d dept_array);
end objecttype;
create or replace package body objecttype
as
procedure insert_object(d dept_array)
as
begin
for i in d.first .. d.last
loop
insert into gpscoordinate(longitude,latitude,name,time) values(d(i).longitude,d(i).latitude,d(i).name,d(i).time);
end loop;
end insert_object;改为END;
end objecttype;
这个无关吧
我开始用SCOTT用户登录,然后在Java代码里调用存储过程,也是报这个错,后来在这里http://hi.baidu.com/yodu/blog/item/9a5bab137bbfabd3f6039e37.html看了说是权限不足的问题,
然后用SYS以DBA的身份登录后就可以运行了
Properties文件配置如下:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:oratest
jdbc.user=SYS AS SYSDBA
jdbc.password=root
不知能否帮到你!
create or replace package testpkg is procedure test1(arg1 in date);end testpkg;create or replace package body testpkg is procedure test1(arg1 in date) is
v date;
begin
v:=arg1; end;end testpkg;--调用包的过程
create or replace procedure testprg is
begin
testpkg.test1(sysdate);
end testprg;