Spring Batch JobRepository使用時のシーケンスエラー

MySQL では動作するのだが、Oracleに移行した途端にエラー。
シーケンスが無いとのこと。

どうやら、MySQLの場合は、下記をテーブルとして実装しても動作するのだが、Oracleだとシーケンスとして作成する必要があるようだ。

MySQLだと下記でも動作する。
[sql]
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
ID BIGINT NOT NULL
);

CREATE TABLE BATCH_JOB_EXECUTION_SEQ (
ID BIGINT NOT NULL
);

CREATE TABLE BATCH_JOB_SEQ (
ID BIGINT NOT NULL
);

INSERT INTO BATCH_STEP_EXECUTION_SEQ VALUES(0);
INSERT INTO BATCH_JOB_EXECUTION_SEQ VALUES(0);
INSERT INTO BATCH_JOB_SEQ VALUES(0);
[/sql]

Oracleでは、Tableではなく、Sequenceを定義。
[sql]
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ MAXVALUE 9223372036854775807 CYCLE;
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ MAXVALUE 9223372036854775807 CYCLE;
CREATE SEQUENCE BATCH_JOB_SEQ MAXVALUE 9223372036854775807 CYCLE;
[/sql]

こちらを参考にした。

This entry was posted in Java, MySQL, Oracle, Spring, 技術情報. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です