DatabaseChangeNotification не запускается при обновлении содержимого BLOB-объекта - PullRequest
0 голосов
/ 29 мая 2018

Когда я обновляю BLOB-объект в базе данных, DatabaseChangeNotification должен сработать, но этого не происходит.

Работает нормально с обычной строкой / varchar, но не работает с BLOB-объектами.Я пытаюсь, как показано ниже

OracleConnection conn = connect();
    Properties prop = new Properties();
    prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS,"true");
    prop.setProperty(OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION,"true");
    DatabaseChangeRegistration dcr = conn.registerDatabaseChangeNotification(prop);
    try {
        DCNDemoListener list = new DCNDemoListener(this);
        dcr.addListener(list);
        Statement stmt = conn.createStatement();
        ((OracleStatement) stmt).setDatabaseChangeRegistration(dcr);
        ResultSet rs = stmt.executeQuery("select * from TEST_MODEL");
        rs.close();
        stmt.close();
        stmt = conn.createStatement();          
        ResultSet rss = stmt.executeQuery("select TESTSUITE_NAME,TESTSUITE_DEFINITION from TESTSUITE_MODELS");
        while (rss.next()) {
            System.out.println(rss.getString("TESTSUITE_NAME"));
            System.out.println(rss.getBlob("TESTSUITE_DEFINITION"));
        }
        rss.close();
        stmt.close();

Может ли кто-нибудь помочь мне в этом?

Если я пытаюсь запросить таблицу, какой столбец conatian blob я получаю "ORA-29977: Неподдерживаемый тип столбца длярегистрация запроса в гарантированном режиме для blolb "исключение

ResultSet rss = stmt.executeQuery (" выберите TESTSUITE_NAME, TESTSUITE_DEFINITION из TESTSUITE_MODELS ");

1 Ответ

0 голосов
/ 29 мая 2018

Я не использовал уведомление об изменении базы данных (спасибо за подсказку, выглядит довольно интересно!), Но нашел следующее в документации :

Быть зарегистрированным дляQRCN в гарантированном режиме , запрос должен соответствовать следующим правилам: Каждый столбец, на который он ссылается, имеет тип данных NUMBER или VARCHAR2.

Раздел о QRCN в режиме наилучшего усилия , похоже, не имеет такого ограничения.

Кто-нибудь знает, как использовать режим наилучшего усилия из JDBC?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...