...в определённый момент при добавлении простой пустой строки выдаётся сообщение
This operation is not defined for system tables.
Dynamic SQL Error.
SQL error code = -607.
Function unknown.
сама процедура...описание действий приводомых к ошибке почти в самом конце
Код: Выделить всё
CREATE PROCEDURE RASH_PROF1(
KOD_PROEKT_DANN INTEGER)
RETURNS (
Y_RASH DOUBLE PRECISION,
X_RASH DOUBLE PRECISION,
Z_RASH DOUBLE PRECISION,
DEPT DOUBLE PRECISION,
UGOL DOUBLE PRECISION,
AZIM DOUBLE PRECISION)
AS
declare p_azim_i DOUBLE PRECISION;
declare sm_kr_kor DOUBLE PRECISION;
declare I_AZ_GOR DOUBLE PRECISION;
declare SM_PRED_KOR DOUBLE PRECISION;
declare GLUB_KR_V DOUBLE PRECISION;
declare GLUB_POD_V DOUBLE PRECISION;
declare h double precision;
declare alfa1 double precision;
declare alfa_sr double precision;
declare ug1 double precision;
declare ug2 double precision;
declare L1 double precision;
declare L2 double precision;
declare L3 double precision;
declare R1 double precision;
declare R3 double precision;
declare x1 double precision;
declare Shag_glub double precision;
declare I double precision;
declare Al_tek double precision;
declare Al_pred double precision;
declare x_pred double precision;
declare z_pred double precision;
declare dept_tek double precision;
declare dept_pred double precision;
declare sm_int double precision;
begin
select
proekt_dann.p_azim_i, proekt_dann.sm_kr_kor,I_AZ_GOR ,SM_PRED_KOR,GLUB_KR_V ,GLUB_POD_V from proekt_dann
into :p_azim_i , :sm_kr_kor , :i_az_gor , :sm_pred_kor , :glub_kr_v , :GLUB_POD_V;
h= abs(:glub_pod_v- :glub_kr_v);
alfa1= round( acos((:h/SM_PRED_KOR) )*(180 / Pi()),8);
alfa_sr= round(:alfa1/2,8);
if (:p_azim_i > 180) then
ug1= 360-:p_azim_i;
else
ug1= :p_azim_i;
if (:i_az_gor > 180) then
ug2= 360-:i_az_gor;
else
ug2= :i_az_gor;
delete from profil_rash where profil_rash.kod_proekt_dann= :kod_proekt_dann;
shag_glub =10;
I=3;
L1=100.00/(:I*:shag_glub)*:alfa_sr;
L3=100.00/(:I*:shag_glub)*:alfa_sr;
R1=573/I;
R3=573/I;
x1=-:shag_glub;
al_tek= -:I;
al_pred=0;
y_rash=0;
x_rash=0;
z_rash=0;
x_pred=0;
z_pred=0;
dept_tek=0;
dept_pred=0;
while (:x1<=:L1) do
begin
x1= :x1+:shag_glub;
al_tek= :al_tek+:i;
y_rash= R1*sin(:al_tek *Pi()/180);
dept_tek= :y_rash;
x_rash= :x_pred+(:dept_tek-:dept_pred)*sin((((:al_tek+:al_pred)*Pi()/180)/2))*cos( (:ug1)*Pi()/180);
z_rash= :z_pred+(:dept_tek-:dept_pred)*sin((((:al_tek+:al_pred)*Pi()/180)/2))*sin( (:ug1)*Pi()/180);
x_pred= :x_rash;
z_pred= :z_rash;
dept_pred = :dept_tek;
al_pred= :al_tek;
dept= :y_rash;
ugol= :al_tek;
azim= :ug1;
insert into profil_rash (NPP,DEPT, UGOL,AI,AM,UDL,SM,ASI,XK,YK,ZK,INTERVAL,OXK,OYK,OZK,KOD_PROEKT_DANN,X_RASH,
Y_RASH,Z_RASH,ABS_RASH,INTENS,KRUG_S_U,KRUG_V_Z) values (gen_id(g_profil_rash,1), :Y_RASH, :al_tek, :ug1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :KOD_PROEKT_DANN, :X_RASH, :Y_RASH, :Z_RASH,0, 0, 0, 0);
suspend;
end
x1= :x1-:shag_glub;
L2= :glub_kr_v-(:y_rash+:y_rash);
while (:x1<= :L2) do
begin
x1= :x1+:shag_glub;
y_rash= :x1*cos(:al_tek*Pi()/180);
dept_tek= :y_rash;
sm_int= :y_rash*tan(:al_tek *Pi()/180);
x_rash= :x_pred+(:dept_tek-:dept_pred)*sin((((:al_tek+:al_pred)*Pi()/180)/2))*cos( (:ug1)*Pi()/180);
z_rash= :z_pred+(:dept_tek-:dept_pred)*sin((((:al_tek+:al_pred)*Pi()/180)/2))*sin( (:ug1)*Pi()/180);
x_pred= :x_rash;
z_pred= :z_rash;
dept_pred = :dept_tek;
al_pred= :al_tek;
dept= :y_rash;
ugol= :al_tek;
azim= :ug1;
insert into profil_rash (NPP,DEPT, UGOL,AI,AM,UDL,SM,ASI,XK,YK,ZK,INTERVAL,OXK,
OYK,OZK,KOD_PROEKT_DANN,X_RASH,Y_RASH,Z_RASH,ABS_RASH,INTENS,KRUG_S_U,KRUG_V_Z)
values (gen_id(g_profil_rash,1), :Y_RASH, :al_tek, :ug1,0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, :KOD_PROEKT_DANN, :X_RASH, :Y_RASH, :Z_RASH,0, 0, 0, 0);
suspend;
end
x1= :x1-:shag_glub;
while (:x1<= :glub_kr_v) do
begin
x1= :x1+:shag_glub; <-----------------------------
suspend; <-----------------------------
end
end
если вставить пустую строку между стрелок...
x1= :x1+:shag_glub;
suspend;
...выдаётся сообщение о незнании некой фунции...
This operation is not defined for system tables.
Dynamic SQL Error.
SQL error code = -607.
Function unknown.