oracle 存储过程表结构: category(catId,catName,time)create or replace procedure ins_cat(catName in varchar2) asbegin
insert into song.category(catName,time) values(catName,sysdate);
end;调用java try{
Connection con=ConDb.getConDb();
CallableStatement cstm=con.prepareCall("{call ins_cat(?)}");
cstm.setString(1,catName);
cstm.execute();
con.close();
cstm.close();
}catch(Exception e){
e.printStackTrace();
}
报错信息: Server startup in 2719 ms
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'INS_CAT'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
请高手指教,是什么原因??
insert into song.category(catName,time) values(catName,sysdate);
end;调用java try{
Connection con=ConDb.getConDb();
CallableStatement cstm=con.prepareCall("{call ins_cat(?)}");
cstm.setString(1,catName);
cstm.execute();
con.close();
cstm.close();
}catch(Exception e){
e.printStackTrace();
}
报错信息: Server startup in 2719 ms
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'INS_CAT'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
请高手指教,是什么原因??
改成
CallableStatement cstm=con.prepareCall("begin ins_cat(?);end;");
试试
CREATE OR REPLACE PACKAGE MY_PKG AS
PROCEDURE ins_cat(
catName IN VARCHAR2
);
END MY_PKG;
CREATE OR REPLACE PACKAGE BODY MY_PKG ASprocedure ins_cat(catName in varchar2) isbegin
insert into song.category(catName,time) values(catName,sysdate);
end ins_cat;
END MY_PKG;
把存储过程打进包里然后执行
CallableStatement cstm=con.prepareCall("begin MY_PKG.ins_cat(?);end;");
这样试试
把 Connection 换成 OracleConnection;
CallableStatement 换成 OracleCallableStatement
在试试
你放完之后用下面得语句再试试吧CallableStatement cstm=con.prepareCall("{call MY_PKG.ins_cat(?)}");