10.01.2014 08:45
OlegON
 
Код:
select adres_id, lgoty_id, tarif+1, total-fact_sum, 0, meseacgod.fun_meseac(m), meseacgod.fun_god(m,g), null, null, null
from potop
where meseac=m and god=g;
неплохо бы тег CODE использовать.
выполни строку выше, работает она у тебя или нет? У меня выделенное вопросы вызывает, это что?
11.01.2014 23:27
frangu
 
Твой код не выполняется, потому что m и g это параметры в пакете. Вне пакета их нельзя использовать( пока пакет неисправен).

Выделенное является параметрами в пакете. Вот сам пакет.

create or replace package meseacgod is
function fun_meseac
( f_meseac in potop.meseac%type)
return potop.meseac%type;

function fun_god
(f_god in potop.god%type,
f_meseac in potop.meseac%type)
return potop.god%type;
end meseacgod;
/

create or replace package body meseacgod is

function fun_meseac ( f_meseac in potop.meseac%type)
return potop.meseac%type
is

begin
if f_meseac = 12 then
return 1;
else
return f_meseac+1;
end if;
end fun_meseac;

function fun_god (f_god in potop.god%type,
f_meseac in potop.meseac%type)
return potop.god%type
is

begin
if f_meseac = 12 then
return f_god+1;
else
return f_god;
end if;
end fun_god;

end meseacgod;
12.01.2014 01:40
frangu
 
Я замутил пакет. Можете сказать, m и g у меня локальные переменные?

create or replace package BODY dolgi_pkgP is

procedure closemonth is
g number(4);
m number(2);

begin

select max(god)into g from potop;
select max(meseac) into m from potop a where a.god = g;

insert into potop(adres_id, lgoty_id, tarif, dolgi, potreblenie, meseac, god, itogo_meseac, total, fact_sum, potop_id)
select adres_id, lgoty_id, tarif+1, total-fact_sum, 0, meseacgod.fun_meseac(m), meseacgod.fun_god(m,g), null, null, null, potop_id.NEXTVAL
from potop
where meseac=m and god=g;

end closemonth;

end dolgi_pkgP;
12.01.2014 09:14
OlegON
 
Мечешься и перебираешь варианты, не пытаясь разобраться в сути и не показывая нам ошибки, а без этого трудно сказать - в голове никто не компилит. В данном случае - да, локальные для процедуры closemonth, но раньше они в процедуру, вроде, передавались, а теперь просто объявляются. Каша какая-то.
Часовой пояс GMT +3, время: 18:48.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.