Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Kolumna tożsamości Oracle i wstaw do wyboru

Uważam, że poniższe zapytanie działa, nie testowałem!

INSERT INTO Test (b)
SELECT * FROM
(
   SELECT 'z' FROM dual
   UNION ALL
   SELECT 'zz' FROM dual
);

Nie jestem pewien, czy to ci w jakikolwiek sposób pomoże.

Dla, GENERATED ALWAYS AS IDENTITY Oracle wewnętrznie używa tylko sekwencji. W tym przypadku obowiązują również opcje dotyczące ogólnej Sekwencji.

NEXTVAL służy do pobrania następnej dostępnej sekwencji i oczywiście jest to pseudokolumna.

Poniżej pochodzi z Oracle

Nie możesz użyć CURRVAL i NEXTVAL w następujących konstrukcjach:

  • Podzapytanie w DELETE , SELECT lub UPDATE oświadczenie
  • Zapytanie widoku lub widoku zmaterializowanego
  • Oświadczenie SELECT z operatorem DISTINCT
  • Oświadczenie SELECT z klauzulą ​​GROUP BY lub ORDER BY
  • SELECT instrukcja, która jest połączona z innym SELECT oświadczenie z UNION, INTERSECT lub MINUS ustaw operatora
  • Klauzula WHERE instrukcji SELECT
  • wartość DOMYŚLNA kolumny w instrukcji CREATE TABLE lub ALTER TABLE
  • Warunek ograniczenia CHECK

subquery i SET Powyższa reguła operacji powinna odpowiedzieć na Twoje pytanie.

I z powodu NULL, gdy pseudocolumn (np. NEXTVAL) jest używany z operacją SET lub innymi wymienionymi powyżej regułami, wynik ma wartość NULL, ponieważ Oracle nie może ich wyodrębnić w efekcie łączenia wielu wyborów.

Zobaczmy poniższe zapytanie,

select rownum from dual
union all 
select rownum from dual

wynik to

ROWNUM
1
1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Siatki bezpieczeństwa

  2. jak korzystać z XMLImporter i FndXdfCmp w Oracle EBS

  3. Jak wybrać pierwszą 1 i uporządkowaną według daty w Oracle SQL?

  4. Przekaż i zwróć niestandardowy obiekt tablicy w ibatis i oracle w java

  5. Jak zaktualizować Oracle Clob za pomocą JDBC?