Appelez une procédure stockée dans l'interface CallableStatement de java pour voir les colonnes PROGRAM et MODULE dans V $ ACTIVE_SESSION_HISTORY. (Base de données Oracle + java)

Base de données Oracle avec interface Java CallableStatement Appelez la procédure stockée et appelez V $ ACTIVE_SESSION_HISTORY Voyons ce qui est défini dans la colonne PROGRAM et la colonne MODULE. 彡 (゚) (゚)

Je l'ai écrit en me référant au site suivant. Je ne connais toujours pas java, donc il y a un pardon et 彡 (-) (-)

Appeler des procédures stockées depuis JDBC (Oracle, SQL Server, MySQL) http://hito4-t.hatenablog.com/entry/2015/04/06/185902 Interface CallableStatement https://docs.oracle.com/javase/jp/8/docs/api/java/sql/CallableStatement.html instruction try-with-resources * PostScript 8/11 http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html

La définition de la procédure stockée est la suivante (゜) (゜)

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;
/

L'exemple de source java est le suivant (゜) (゜)

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...");
    }
}

Qu'est-ce que la compilation javac brute de Han, IDE? 彡 (゜) (゜)

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

Après toute l'exécution java brute de Han, l'EDI est n (ry

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

Suite à l'exécution du module java, il ne s'agit que d'un message (゜) (゜)

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

Voici le résultat de référence de V $ ACTIVE_SESSION_HISTORY, PROGRAMME et MODULE sont tous deux un client léger JDBC! 彡 (゜) (゜)

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

Appelez une procédure stockée dans l'interface CallableStatement de java pour voir les colonnes PROGRAM et MODULE dans V $ ACTIVE_SESSION_HISTORY. (Base de données Oracle + java)
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Java] Comment obtenir la clé et la valeur stockées dans Map par traitement itératif
3. Créez une base de données à laquelle accéder à partir du module Web
Ecrire une classe en Kotlin et l'appeler en Java
Classes et instances Java comprises dans la figure
Utilisation de la base de données (SQL Server 2014) à partir d'un programme Java 04/01/2018
Appeler un programme écrit en Swift depuis Processing (Java)
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
Exemple de code Java pour acquérir et afficher les données source et de destination DBLINK dans Oracle Database à l'aide de DBLINK
Exemple de code pour obtenir les valeurs des principaux types SQL dans Java + Oracle Database 12c