sql >> Database >  >> RDS >> PostgreSQL

De grootte van lobject verkrijgen in PostgreSQL

Deze functie is voor mij efficiënt genoeg geweest, misschien wilt u deze met uw gegevens proberen:

CREATE OR REPLACE FUNCTION lo_size(oid) RETURNS integer 
AS $$ 
declare 
 fd integer; 
 sz integer; 
begin 
 fd = lo_open($1, 262144);
 if (fd<0) then
   raise exception 'Failed to open large object %', $1;
 end if;
 sz=lo_lseek(fd,0,2);
 if (lo_close(fd)!=0) then
   raise exception 'Failed to close large object %', $1;
 end if;
 return sz;
end; 
$$ LANGUAGE 'plpgsql'; 

Een andere optie is select sum(length(data)) from pg_largeobject where loid=the_oid maar het vereist leestoegang tot pg_largeobject waarvan ik denk dat het onderdrukt is in pg 9.0+ voor niet-superusers




  1. Kan MySQL meerdere tekens vervangen?

  2. Verbind Metabase met MySQL voor gegevensverkenning

  3. Hoe kan ik een INSERT-script genereren voor een tabel met een VARBINARY(MAX)-veld?

  4. Het ophalen van de database is onjuist geconfigureerd. Geef de naamwaardefout op