Oracle データベース スキーマからすべてのトリガー名を取得したいと考えています。
getFunctions を使用してすべての関数を取得していますが、トリガー用の別の関数が見つかりません。
DatabaseMetaData dbmd;
ResultSet result = dbmd.getFunctions(null, Ousername, null);
Oracle データベース スキーマからすべてのトリガー名を取得したいと考えています。
getFunctions を使用してすべての関数を取得していますが、トリガー用の別の関数が見つかりません。
DatabaseMetaData dbmd;
ResultSet result = dbmd.getFunctions(null, Ousername, null);
メタデータを使用してそれを行うことができます。
DatabaseMetaData dbmd = dbConnection.getMetaData();
ResultSet result = dbmd.getTables("%", Ousername, "%", new String[]{ "TRIGGER" });
while (result.next()) {
result.getString("TABLE_NAME")
}
PreparedStatement を介してすべてのトリガーを取得する別の方法を見つけました。
try {
System.out.println("\n******* Table Name: "+ tableName);
String selectQuery = "SELECT TRIGGER_NAME FROM ALL_TRIGGERS WHERE TABLE_NAME = ?";
PreparedStatement statement = DataSource.getConnection().prepareStatement(selectQuery);
statement.setString(1, tableName.toUpperCase());
ResultSet result = statement.executeQuery();
System.out.println("Triggers: ");
while (result.next()) {
String triggerName = result.getString("TRIGGER_NAME");
System.out.println(triggerName);
}
} catch (SQLException e) {
e.printStackTrace();
}