Оракул SGBD всегда выполняет запросы анонимного plsql в том же порядке?
Это часть моего кода java, создающая функцию в анонимном блоке plsql:
*String p ="FUNCTION get_result RETURN varchar2 AS "
+"BEGIN "
+"sql_error:='ok';"
+query1+";"
+query2+";"
+query3+";"
+"COMMIT;"
+"RETURN sql_error; "
+"EXCEPTION "
+"when others then "
+"ROLLBACK;"
+"end;";*
где запросы 1,2 и 3 являются запросами sql; иногда query2 не выполняется, и это не генерирует ошибку транзакции и запрашивает 1 и 3 и фиксируется. Я хотел бы знать, как это возможно и как я могу это исправить. Я также хотел бы знать, какая процедура лучше между вызовом анонимных операторов блока и Statement.addBatch
Я хочу знать, как управлять сеансами, которые выполняют транзакции, которые управляют многими последовательностями. Я обнаружил, что использование многих сеансов в транзакции приводит к ошибкам, которые oracle не отправляет обратно пользователю. Они иногда получают одно и то же значение для двух казней в sequence.nextval? благодарю вас
1 ответ
Я видел ошибку, которую создавал. Фактически, все запросы не были в одной транзакции, потому что я использовал статический атрибут, который собирал запросы различных транзакций и отправлял их оракулу SGBD через анонимный plsql.
поэтому я изменил статическую переменную на простую и общедоступную, сборщик запросов, оцениваемых с помощью экземпляра класса, чтобы все запросы транзакции всегда отправлялись сразу и выполнялись в одном и том же порядке.