Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 78

Definiując tabelę w DB2 można dla kolumny wskazać wartość domyślną lub zażądać wprowadzenia "systemowej" wartości domyślnej.

Na przykład:

CREATE TABLE TT (C1 CHAR(5) NOT NULL WITH DEFAULT 'ALA', C2 VARCHAR(5) NOT NULL WITH DEFAULT);

W przypadku kolumny C1 wartość domyślna została podana w definicji kolumny (tutaj 'ALA'), a dla kolumny C2 wprowadzana będzie "systemowa" wartość domyślna.

Jaka wartość zostanie wprowadzona do kolumny C2?

 

 

  • Zapytał
  • @ | 30.09.2015
  • TRENER MODERATOR ALTKOM AKADEMII

Odpowiedź (1)

  • 0

Systemową wartością domyślną DB2 dla typu VARCHAR jest pusty łańcuch znaków.

Zostanie wprowadzony łańcuch znaków o długości 0 (zero).

Dla typu CHAR (o stałej długości) zostanie wprowadzony łańcuch składający się ze znaków spacji o długości odpowiadającej rozmiarowi kolumny.

Przykład:

CREATE TABLE TT1 (C1 CHAR(5) NOT NULL WITH DEFAULT, C2 VARCHAR(5) NOT NULL WITH DEFAULT);

INSERT INTO TT1 (C1, C2) VALUES ('AA', 'BB');

INSERT INTO TT1 (C1) VALUES ('CC');

INSERT INTO TT1 (C2) VALUES ('DD');

SELECT * FROM TT1;

C1    C2   
----- -----
AA    BB   
CC         
      DD   

SELECT HEX(C1) as C1_HEX, LENGTH(C1) AS C1_L, HEX(C2) AS C2_HEX, LENGTH(C2) AS C2_L FROM TT1;

C1_HEX     C1_L        C2_HEX     C2_L       
---------- ----------- ---------- -----------
4141202020           5 4242                 2
4343202020           5                      0
2020202020           5 4444                 2

 

UWAGA! W trybie kompatybilności z Oracle systemową wartością domyślną dla typu VARCHAR jest 1 spacja!

 

  • Odpowiedział
  • @ | 30.09.2015
  • TRENER MODERATOR ALTKOM AKADEMII