miejsce na pojedynczy rekord

0

cześć,
jak mogę sprawdzić ile miejsca może zajmować pojedynczy rekord w bazie danych oracle w konkretnej tabeli? jest jakies polecenie sql które mogę wykonać?

0

Możesz spróbować wyliczyć:

select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;

Inna opcja to zajrzeć do: DBA_TABLES i tam masz AVG_ROW_LEN dla danej tabeli.

0
yarel napisał(a):

Możesz spróbować wyliczyć:

select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;

no właśnie nie chce po kolei wymieniac kolumn

0
Inari napisał(a):
yarel napisał(a):

Możesz spróbować wyliczyć:

select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;

no właśnie nie chce po kolei wymieniac kolumn

A co to za problem wygenerować sobie zapytanie per tabelka?

select 
  'select '||listagg('vsize('||column_name,')+') within group (order by 1)||') rowSize, rownum rn from foo;' qry
from 
  all_tab_cols 
where 
  table_name='FOO';
0
yarel napisał(a):
Inari napisał(a):
yarel napisał(a):

Możesz spróbować wyliczyć:

select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;

no właśnie nie chce po kolei wymieniac kolumn

A co to za problem wygenerować sobie zapytanie per tabelka?

select 
  'select '||listagg('vsize('||column_name,')+') within group (order by 1)||') rowSize, rownum rn from foo;' qry
from 
  all_tab_cols 
where 
  table_name='FOO';

w niektorych miejscach są nulle, wiec spróbowałem całe wyrazenie vsize(column_name) obrać w NVL by dostać dobre wyniki, jednak dostaje wtedy zwrotke, że napis otrzymany jest zbyt długi :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1