ďťż
 
[DB2] Tabela ze zmaterializowanym zapytaniem. ďťż
 
[DB2] Tabela ze zmaterializowanym zapytaniem.
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[DB2] Tabela ze zmaterializowanym zapytaniem.



Jan Słupicki - 23-03-2006 03:32
[DB2] Tabela ze zmaterializowanym zapytaniem.
  Mam problem z utworzeniem zmaterializowanej tabeli.
Używam skryptu:
----------
Drop table A;
Drop table B;
Drop table AB;
Create table A (
A_ID Bigint NOT NULL Generated By Default As Identity(Start With 2,
Increment By 2, Cache 20),
A_TEXT Varchar(20)
);
Create table B (
B_ID Bigint NOT NULL Generated By Default As Identity(Start With 1,
Increment By 1, Cache 20),
B_TEXT Varchar(20)
);
insert into A(A_Text) values ('Text-1');
insert into B(B_Text) values ('Text-1');
commit;
select * from A ,B where A_TEXT = B_TEXT;

Create table AB as
(select * from A, B where A_TEXT = B_TEXT)
data initially deferred
refresh immediate;

select * from AB;
-------------
I niestety wywala się przy tworzeniu tabeli AB z komunikatem:
SQL20058N Pełna selekcja określona dla zmaterializowanej tabeli zapytania
"UDB2.AB" nie jest poprawna. Kod przyczyny = "7". SQLSTATE=428EC
Nie mogę nigdzie znaleźć co to jest ta przyczyna "7" !!!
Nawet jak zapytanie uproszczę do "select * from A" to jest tak samo. Przy
refresh deferred jest wszystko ok.

--
Jan Słupicki





Art - 24-03-2006 00:09

  Jan Słupicki wrote:
> Mam problem z utworzeniem zmaterializowanej tabeli.
> Używam skryptu:
> ----------
> Drop table A;
> Drop table B;
> Drop table AB;
> Create table A (
> A_ID Bigint NOT NULL Generated By Default As Identity(Start With 2,
> Increment By 2, Cache 20),
> A_TEXT Varchar(20)
> );
> Create table B (
> B_ID Bigint NOT NULL Generated By Default As Identity(Start With 1,
> Increment By 1, Cache 20),
> B_TEXT Varchar(20)
> );
> insert into A(A_Text) values ('Text-1');
> insert into B(B_Text) values ('Text-1');
> commit;
> select * from A ,B where A_TEXT = B_TEXT;
>
> Create table AB as
> (select * from A, B where A_TEXT = B_TEXT)
> data initially deferred
> refresh immediate;
>
> select * from AB;
> -------------
> I niestety wywala się przy tworzeniu tabeli AB z komunikatem:
> SQL20058N Pełna selekcja określona dla zmaterializowanej tabeli zapytania
> "UDB2.AB" nie jest poprawna. Kod przyczyny = "7". SQLSTATE=428EC
> Nie mogę nigdzie znaleźć co to jest ta przyczyna "7" !!!
> Nawet jak zapytanie uproszczę do "select * from A" to jest tak samo. Przy
> refresh deferred jest wszystko ok.
>
Cytuje "
Pełna selekcja podana w instrukcji
CREATE TABLE, która zwróciła ten warunek, narusza co najmniej
jedną regułę, zgodnie z opisem podanym w podręczniku SQL
Reference.
(...)
Instrukcja nie może być wykonana, ponieważ narusza ograniczenia,
w sposób opisany następującym kodem przyczyny:
(...)
7 Gdy określona jest klauzula REFRESH IMMEDIATE:
(...)
Gdy nie ma klauzuli GROUP BY, każda tabela bazowa musi mieć
zdefiniowany co najmniej jeden klucz unikalny i wszystkie
kolumny takich kluczy muszą występować na liście selekcji w
definicji zmaterializowanej tabeli zapytania.
"

Pozdrawiam
Art




Jan Słupicki - 24-03-2006 00:10

  > Cytuje "
> Pełna selekcja podana w instrukcji
> CREATE TABLE, która zwróciła ten warunek, narusza co najmniej
> jedną regułę, zgodnie z opisem podanym w podręczniku SQL
> Reference.
> (...)
> Instrukcja nie może być wykonana, ponieważ narusza ograniczenia,
> w sposób opisany następującym kodem przyczyny:
> (...)
> 7 Gdy określona jest klauzula REFRESH IMMEDIATE:
> (...)
> Gdy nie ma klauzuli GROUP BY, każda tabela bazowa musi mieć
> zdefiniowany co najmniej jeden klucz unikalny i wszystkie
> kolumny takich kluczy muszą występować na liście selekcji w
> definicji zmaterializowanej tabeli zapytania.
> "

Dzięki. Gdzie to jest ?
(abym nie musiał znów pytać jak coś podobnego mi wyświetli).

--
Jan Słupicki




Art - 25-03-2006 01:20

  Jan Słupicki wrote:
>> Cytuje "
>> Pełna selekcja podana w instrukcji
>> CREATE TABLE, która zwróciła ten warunek, narusza co najmniej
>> jedną regułę, zgodnie z opisem podanym w podręczniku SQL
>> Reference.
>> (...)
>> Instrukcja nie może być wykonana, ponieważ narusza ograniczenia,
>> w sposób opisany następującym kodem przyczyny:
>> (...)
>> 7 Gdy określona jest klauzula REFRESH IMMEDIATE:
>> (...)
>> Gdy nie ma klauzuli GROUP BY, każda tabela bazowa musi mieć
>> zdefiniowany co najmniej jeden klucz unikalny i wszystkie
>> kolumny takich kluczy muszą występować na liście selekcji w
>> definicji zmaterializowanej tabeli zapytania.
>> "
>
>
> Dzięki. Gdzie to jest ?
> (abym nie musiał znów pytać jak coś podobnego mi wyświetli).
>

Ja uzywam "Edytora komend". Jest on w narzedziach DB2.
W wielu przypadkach opisany jest blad z wyjasnieniami i mozliwe przyczyny wystapienia.

Art





Jan Słupicki - 25-03-2006 01:20

  > Ja uzywam "Edytora komend". Jest on w narzedziach DB2.
> W wielu przypadkach opisany jest blad z wyjasnieniami i mozliwe przyczyny
> wystapienia.

Też używałem "Edytora komend". Problem był w tym że puszczałem
cały skrypt i wtedy dostawałem tylko ograniczony komunikat o błędzie.
Dopiero teraz jak wpisałem samą komendę tworzenia tabeli to dostałem
pełny komunikat o błędzie.
Dzięki za pomoc.

--
Jan Słupicki




Artur - 25-03-2006 01:21

  By uzyskać dokładny opis błędu w tekstowym oknie komend, jak i w
graficznym edytorze komend wystarczy wpisać db2 ? SQLCODE, na
przykład:

db2 ? SQL20058N

W podobny sposób można też wyświetlić opis danego SQLSTATE, choć
tu komunikat jest już mniej dokładny (z definicji SQLSTATE zawiera
ogólne opisy błędów odnoszące się do standardu SQL), np:

db2 ? 428EC

Pozdrawiam,

-- Artur Wroński
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • oefg.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com