2016-08-19 3 views
3

Я знаком с использованием подготовленных Java-инструкций для вставки/обновления в таблице. В оракуле вы можете добавить комментарий к таблице, как я могу использовать подготовленное состояние для этого?Java PreparedStatement Комментарий к таблице

Это была моя первоначальная попытка без везения;

PreparedStatement stmt = con.prepareStatement("comment on table my_table is q'[?]'"); 
stmt.setString(1, description); 
stmt.executeUpdate(); 
+1

'комментария' является DDL заявление поэтому вы не можете использовать переменные связывания так же, как вы не можете использовать переменные связывания в инструкции 'create table'. Вам нужно собрать полный SQL-запрос и отправить его в Oracle. Кроме того, операторы DDL фактически выполняются на этапе подготовки, поэтому не имеет смысла использовать 'PreparedStatement'. –

ответ

0

Вы можете использовать систему Oracle таблицы и установить комментарий там с PreparedStatement, как это:

PreparedStatement stmt = con.prepareStatement(
    "UPDATE user_tab_comments SET comments = ? WHERE table_name = 'my_table'"); 

Или попытаться использовать простое утверждение:

String commentOnTableSQL = String.format("COMMENT ON TABLE my_table is '%s'", comment); 
Statement statement = dbConnection.createStatement(); 
statement.execute(commentOnTableSQL); 
+1

Надеюсь, что «обновление» на 'user_tab_comments' потерпит неудачу. Непосредственное обновление таблицы словарей данных - ужасная идея. Он не поддерживается, и если он работает, это почти всегда вводит какую-то тонкую коррупцию. Обычно Oracle не позволяет вам это делать, но если у вас есть достаточно привилегий, и вы получаете «повезло», вы можете найти представление, которое вы технически можете изменить. –

+0

@JustinCave Я отредактировал ответ, добавленный второй способ. –

Смежные вопросы