Rufen Sie eine gespeicherte Prozedur in der CallableStatement-Oberfläche von Java auf, um die Spalten PROGRAM und MODULE in V $ ACTIVE_SESSION_HISTORY anzuzeigen. (Oracle Database + Java)

Oracle-Datenbank mit Java CallableStatement-Schnittstelle Rufen Sie die gespeicherte Prozedur auf und rufen Sie V $ ACTIVE_SESSION_HISTORY auf Mal sehen, was in den Spalten PROGRAM und MODULE eingestellt ist. 彡 (゚) (゚)

Ich habe es geschrieben, während ich mich auf die folgende Seite bezog. Ich bin immer noch nicht mit Java vertraut, daher gibt es eine Vergebung und 彡 (-) (-)

Rufen Sie gespeicherte Prozeduren von JDBC (Oracle, SQL Server, MySQL) auf. http://hito4-t.hatenablog.com/entry/2015/04/06/185902 Schnittstelle CallableStatement https://docs.oracle.com/javase/jp/8/docs/api/java/sql/CallableStatement.html Try-with-Resources-Anweisung * 8/11 Postscript http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html

Die Definition der gespeicherten Prozedur lautet wie folgt (゜) (゜)

CREATE OR REPLACE PROCEDURE PRC_CALL_SP
IS
  d_date DATE;
BEGIN
  FOR i IN 1..1000000
  LOOP
    SELECT SYSDATE INTO d_date FROM DUAL;
  END LOOP;
END;
/

Das Beispiel der Java-Quelle ist wie folgt (゜) (゜)

import java.sql.*;

public class StoredCall {
    public static void main(String[] args) {
        //initialize
        System.out.println("Init...");
        //DB connection info
        final String path = "jdbc:oracle:thin:@localhost:1521:orcl";  //path
        final String id = "XXXXXXXX";  //ID
        final String pw = "YYYYYYYY";  //password
        
        //try-with-resources Statement
        try (
            //DB Connect
            Connection conn = DriverManager.getConnection(path, id, pw);
            //Stored Procedure Statement Set.
            CallableStatement cs = conn.prepareCall("CALL PRC_CALL_SP()");
        ) {
            //AutoCommit Setting
            conn.setAutoCommit(false);
            //Stored Procedure Execute
            System.out.println("Call stored procedure...");
            cs.execute();
            //Commit
            conn.commit();
        } catch(SQLException ex) {
            //SQLException
            ex.printStackTrace();  //Error
        }
        //End
        System.out.println("End...");
    }
}

Was ist Hans rohe Javac-Zusammenstellung, IDE? 彡 (゜) (゜)

javac -classpath .:${ORACLE_HOME}/jdbc/lib/ojdbc8.jar StoredCall.java

Nach all der rohen Java-Ausführung von Han ist IDE n (ry

java -classpath .:${ORACLE_HOME}/jdbc/lib/ojdbc8.jar StoredCall

Als Ergebnis der Ausführung des Java-Moduls ist dies nur eine Nachricht (゜) (゜)

Init...
Call stored procedure...
End...

Unten ist das Referenzergebnis von V $ ACTIVE_SESSION_HISTORY, Sowohl PROGRAM als auch MODULE sind JDBC Thin Client! 彡 (゜) (゜)

SET LINESIZE 170;
SET PAGESIZE 300;
COLUMN sid FORMAT 9999;
COLUMN ss FORMAT A10;
COLUMN event FORMAT A30;
COLUMN program FORMAT A20;
COLUMN module FORMAT A20;
SELECT session_id AS sid
  ,    sql_id
  ,    top_level_sql_id
  ,    session_state as ss
  ,    event
  ,    program
  ,    module
FROM v$active_session_history
WHERE sample_time >= systimestamp - (3 / 24 / 60)
AND user_id = 131
ORDER BY sample_time DESC;

  SID SQL_ID        TOP_LEVEL_SQL SS         EVENT                          PROGRAM              MODULE
----- ------------- ------------- ---------- ------------------------------ -------------------- --------------------
   17 1vq4vx6n0r4cn 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17               1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 1vq4vx6n0r4cn 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 1vq4vx6n0r4cn 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17               1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
   17 c749bc43qqfz3 1vq4vx6n0r4cn ON CPU                                    JDBC Thin Client     JDBC Thin Client
:

SELECT sql_id, sql_text FROM V$SQL
WHERE sql_id IN ('1vq4vx6n0r4cn', 'c749bc43qqfz3');

SQL_ID        SQL_TEXT
------------- ---------------------------
c749bc43qqfz3 SELECT SYSDATE FROM DUAL
1vq4vx6n0r4cn CALL PRC_CALL_SP()

Recommended Posts

Rufen Sie eine gespeicherte Prozedur in der CallableStatement-Oberfläche von Java auf, um die Spalten PROGRAM und MODULE in V $ ACTIVE_SESSION_HISTORY anzuzeigen. (Oracle Database + Java)
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
In der Abbildung verstandene Java-Klassen und -Instanzen
Verwenden der Datenbank (SQL Server 2014) aus einem Java-Programm 2018/01/04
Rufen Sie ein in Swift geschriebenes Programm von Processing (Java) auf.
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Java-Codebeispiel zum Erfassen und Anzeigen von DBLINK-Quell- und Zieldaten in Oracle Database mithilfe von DBLINK
Beispielcode zum Abrufen der Werte der wichtigsten SQL-Typen in Java + Oracle Database 12c