编写过程
--in: 表示这是一个输入参数,默认为in
--out:表示一个输出参数
create or replace procedure sp_pro7
(spBookId in number,spbookName in varchar2,sppublishHouse in varchar2) is
begin
insert into book values(spBookId,spbookName,sppublishHouse);
end;
//在java中调用的过程如下:
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
try {
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:YANER", "yaner",
"y327");
//创建CallableStatement
CallableStatement cs = conn.prepareCall("call sp_pro7(?,?,?)");
cs.setInt(1, 10);
cs.setString(2, "笑傲江湖");
cs.setString(3, "梦里花落知多少");
cs.execute();
cs.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
}
如果是调用具有返回值的过程时,写法如下:
过程语句create or replace procedure sp_pro7
(spBookId in number,spbookName out varchar2,sppublishHouse in varchar2) is//仅仅是添加一个out关键字
begin
//jsp中的代码
cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);
String name = cs.getString(2);