jdbcTemplate().update メソッドを使用してキューを削除しようとしています。これは -
getJdbcTemplate().update("call DBMS_AQADM.DROP_QUEUE_TABLE (?, ?)", qTableName.toUpperCase(),true);
DBMS_AQADM.DROP_QUEUE_TABLE は 2 つのパラメータを取ります。1) 文字列としての queue_table および 2) ブール値としての強制。
上記のコードを実行しようとすると、次のようになります -
PreparedStatementCallback; bad SQL grammar [call DBMS_AQADM.DROP_QUEUE_TABLE (?, ?)]; nested exception is java.sql.SQLException: ORA-06553: PLS-306: wrong number or types of arguments in call to 'DROP_QUEUE_TABLE'
ORA-06553: PLS-306: wrong number or types of arguments in call to 'DROP_QUEUE_TABLE'
しかし、次のコードを実行しているときは正常に動作します-
getJdbcTemplate().update("call DBMS_AQADM.CREATE_QUEUE_TABLE (?, ?)", qTableName.toUpperCase(), payloadType.toUpperCase());
私が推測しているのは、問題は oracle オブジェクト (varchar または int ではない) をパラメーターとして渡すことです。
私は本当にこれを解決する方法があることを知りたいです。