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

Jak wstawić do tabeli tymczasowej podczas przechodzenia przez łańcuch - Oracle - PL/SQL

Jeśli używasz Oracle 12c , możesz zdefiniować IDENTITY kolumna przez GENERATED ALWAYS AS IDENTITY w swojej definicji tabeli i postępuj zgodnie z poniższymi wskazówkami:

SQL> CREATE GLOBAL TEMPORARY TABLE tt_temptable(
  2        RowNums NUMBER(3,0) GENERATED ALWAYS AS IDENTITY,
  3        procNums  NUMBER(18,0)
  4    ) ON COMMIT PRESERVE ROWS;

Table created

SQL> 
SQL> DECLARE
  2    inputString  VARCHAR2(50) := '12,13,14,15';
  3  BEGIN
  4      INSERT INTO tt_temptable(procNums)
  5         SELECT REGEXP_SUBSTR (inputString,'[^,]+',1,LEVEL) ProcNums
  6           FROM dual
  7        CONNECT BY  REGEXP_SUBSTR (inputString,'[^,]+',1,LEVEL) IS NOT NULL;
  8  END;
  9  /

PL/SQL procedure successfully completed

SQL> SELECT * FROM tt_temptable;

ROWNUMS            PROCNUMS
------- -------------------
      1                  12
      2                  13
      3                  14
      4                  15

Aby zresetować IDENTITY kolumna (RowNums ), użyj :

SQL> ALTER TABLE tt_temptable MODIFY( RowNums Generated as Identity (START WITH 1));

za każdym razem, gdy wspólne blokady na stole zostaną zwolnione.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co zrobić, jeśli podczas korzystania ze sterownika Easysoft Oracle ODBC w wersji OCI nie można otworzyć pliku obiektu współdzielonego?

  2. Wyświetlanie wartości LITAGG w komórce na podstawie wartości innej kolumny

  3. Jak usunąć część sznurka w Oracle?

  4. Pula połączeń Tomcat jdbc - wycofanie porzuconej transakcji

  5. Tworzenie użytkownika Oracle, jeśli jeszcze nie istnieje