объединение двух значений int в postgresql

У меня есть 7 целочисленных значений (с 3,1,3,4,4,5,4 цифрами соответственно ), и я должен объединить их в одно целое число (, т.е. 24-значный номер. ). Я пытался сделать это так

create or replace function gen_id(int,int,int,int,int,int,int) returns bigint as $$
declare
    id bigint;
begin
    id = $1 * 1000000000000000000000 + $2 * 100000000000000000000 + $3 * 100000000000000000 + $4 * 10000000000000 + $5 * 1000000000 + $6 * 10000 + $7;
    return id;
end;
$$ language plpgsql;

select * from gen_id(100,1,101,1000,1001,10001,1000);  

Но когда я его выполняю, я получаю ошибку :bigint out of range. Есть ли другой лучший способ сделать это?
спасибо

9
задан Kumar Rajput 25 June 2012 в 20:38
поделиться