问题
How to System.Out.println stored procedure witch i have created in Oracle database. As you can see, stored precedure returns database version banner. Now i want to print that banner in java console.
My stored procedure is:
CREATE OR REPLACE PROCEDURE getVersion (out_cursor OUT SYS_REFCURSOR)
AS
BEGIN
OPEN out_cursor FOR SELECT * FROM V$VERSION;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line (SQLERRM);
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END getVersion;
Java code:
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
//CREATE procedure
Statement stmtpr = conn.createStatement();
// Create the stored function
stmtpr.execute("CREATE OR REPLACE PROCEDURE getVersion (out_cursor OUT SYS_REFCURSOR) AS BEGIN OPEN out_cursor FOR SELECT * FROM V$VERSION; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.put_line (SQLERRM); WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM);END getVersion;");
// Close the statement
System.out.println("PROCEDURE created!!! ");
stmtpr.close();
//Execute a query
System.out.println("Creating statement...");
CallableStatement stmtpro = conn.prepareCall("BEGIN getVersion(?); END;");
stmtpro.registerOutParameter(1, OracleTypes.CURSOR);
stmtpro.execute();
ResultSet rs = ((OracleCallableStatement) stmtpro).getCursor(1);
while (rs.next()) {
System.out.println(rs)); //How to print BANNER data
}
rs.close();
stmtpro.close();
conn.close();
回答1:
Well you have to use column name, in this case it is banner
I guess, so try as
System.out.println(rs.getString("banner"));
来源:https://stackoverflow.com/questions/24478480/java-how-to-print-stored-procedure-data-from-oracle