Eu acredito que a consulta abaixo funciona, eu não testei!
INSERT INTO Test (b)
SELECT * FROM
(
SELECT 'z' FROM dual
UNION ALL
SELECT 'zz' FROM dual
);
Não tenho certeza, se isso te ajuda de alguma forma.
Para,
GENERATED ALWAYS AS IDENTITY
O Oracle usa internamente apenas uma Sequência. E as opções de Sequência geral também se aplicam a isso. NEXTVAL é usado para buscar a próxima sequência disponível e, obviamente, é uma pseudocoluna.
O abaixo é da Oracle
Você não pode usar
CURRVAL
e NEXTVAL
nas seguintes construções:- Uma subconsulta em um
DELETE
,SELECT
, ouUPDATE
declaração - Uma consulta de uma visualização ou de uma visualização materializada
- Uma instrução SELECT com o operador DISTINCT
- Uma instrução SELECT com uma cláusula GROUP BY ou uma cláusula ORDER BY
- Um
SELECT
instrução que é combinada com outroSELECT
declaração com UNION,INTERSECT
, ouMINUS
operador definido - A cláusula WHERE de uma instrução SELECT
- valor DEFAULT de uma coluna em uma instrução CREATE TABLE ou ALTER TABLE
- A condição de uma restrição CHECK
A
subquery
e SET
regra de operações acima deve responder à sua pergunta. E pelo motivo de NULL, quando
pseudocolumn
(por exemplo, NEXTVAL) é usado com uma operação SET ou qualquer outra regra mencionada acima, a saída é NULL, pois o Oracle não poderia extraí-los com efeito com a combinação de várias seleções. Vejamos a consulta abaixo,
select rownum from dual
union all
select rownum from dual
o resultado é
ROWNUM
1
1