4

Oracle データベース スキーマからすべてのトリガー名を取得したいと考えています。

getFunctions を使用してすべての関数を取得していますが、トリガー用の別の関数が見つかりません。

DatabaseMetaData dbmd;
ResultSet result = dbmd.getFunctions(null, Ousername, null);
4

4 に答える 4

4

メタデータを使用してそれを行うことができます。

DatabaseMetaData dbmd = dbConnection.getMetaData(); 
ResultSet result = dbmd.getTables("%", Ousername, "%", new String[]{ "TRIGGER" });
while (result.next()) {
     result.getString("TABLE_NAME")
}
于 2015-05-08T18:52:49.710 に答える
0

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();
}
于 2019-12-10T13:09:54.457 に答える