Tentando criar uma sequência no Oracle que começa com o valor máximo de uma tabela específica. Por que isso não funciona ?
CREATE SEQUENCE reservation_sequence
MINVALUE 0
START WITH (SELECT MAX(reservation_id)
FROM reservation)
INCREMENT BY 1
CACHE 20;
Você não pode misturar DDL com DML dessa maneira.
Sua melhor aposta é um bloco PL/SQL anônimo:
Além disso, você tem certeza que quer
max()
e nãomax()+1
?No Oracle SQL Manual você pode encontrar um diagrama de sintaxe
então START WITH deve ser seguido por um inteiro e nada mais. Um número inteiro tambémédefinido por um diagrama de sintaxe neste manual (para encontrar o diagrama de sintaxe para números inteiros veja o índice do manual
O erro que você receberá será
A descrição do erro também pode ser encontrada em um dos manuais .
Se você observar o seu erro, pode ser que também seja exibida a posição exata em que o erro ocorre na instrução.