--/
create or replace procedure pro_2(id varchar2,id2 out varchar2)
is
name varchar2(20); --
begin
id2 := 'result:' || id;
dbms_output.put_line('id:' || id || ' name:' || name);
end;
/
alter procedure pro_2 compile;
CallableStatement cs = con.prepareCall("call pro_2(?,?)");//{call pro_2(?,?)}
cs.setString(1,"1");
cs.registerOutParameter(2, OracleTypes.VARCHAR);
cs.execute();
String name = cs.getString(2);
结果:
result:1
String driver = "oracle.jdbc.OracleDriver"; //驱动标识符
String url = "jdbc:oracle:thin:@127.0.0.1:1521:mycat"; //链接字符串
String user = "system"; //数据库的用户名
String password = "123456"; //数据库的密码
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
boolean flag = false;
try {
Class.forName(driver);
con = DriverManager.getConnection(url,user, password);
CallableStatement cs = con.prepareCall("{call pro_2(?,?)}");
cs.setString(1,"1");
cs.registerOutParameter(2, OracleTypes.VARCHAR);
cs.execute();
String name = cs.getString(2);
CallableStatement cs2 = con.prepareCall("{call pro_data(?)}");
cs2.registerOutParameter(1, OracleTypes.CURSOR);
cs2.execute();
rs = (ResultSet) cs2.getObject(1);
while (rs.next()){
System.out.println(rs.getString(1));
}
String sql = "SELECT * FROM scott.travelrecord";
pstm =con.prepareStatement(sql);
rs = pstm.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 1; i <=columnCount ; i++) {
String columnName = metaData.getColumnName(i);
System.out.println(columnName);
}
while(rs.next()) {
for (int i = 1; i <= columnCount ; i++) {
System.out.print(rs.getString(i));
}
System.out.println();
}
flag = true;
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}