PDA

Просмотр полной версии : хранимая процедура pl/sql



blink10
09.12.2015, 10:10
Добрый день. Прошу помочь с запросом к базе.
Есть две таблицы channel, chvalue и хранимая роцедура insval для записи данных. Данные в базу поступают.
Пишу процедуру для чтения... В протоколе скады - произошла ошибка во время выполнения многостраничного запроса ...OLE DB

SQL> desc channel;
Имя Пусто? Тип
----------------------------------------- -------- ----------------------------

NAME NOT NULL VARCHAR2(512)
ID NOT NULL NUMBER(38)
TYPE NUMBER(38)
UNITS VARCHAR2(100)
NAME2 VARCHAR2(512)

SQL> desc chvalue;
Имя Пусто? Тип
----------------------------------------- -------- ----------------------------

ID_CHANNEL NUMBER(38)
VALMOMENT DATE
VALUE FLOAT(126)
----------------------------------------- -------- ----------------------------

CREATE OR REPLACE PROCEDURE insval (
in_name IN varchar,
in_moment in date,
in_value in float )
as
chid integer;
cnt integer;
begin

select count(id) into cnt from channel where channel.name = in_name;

if cnt=0 then
insert into channel (name) values (in_name);
select seq_channel.currval into chid from dual;
else
select id into chid from channel where channel.name = in_name;
end if;

insert into chvalue (id_channel, valmoment, value) values (chid, in_moment, in_value);

delete from chvalue where valmoment is null;
commit;
end;

SCADAMaster
09.12.2015, 11:13
Какая база данных?
А если вызвать эту процедуру из среды администрирования базы - она вызывается?

С данной документацией вы ознакомились?
http://www.masterscada.ru/services/support/art_step_by_step/BD/BD_Part_2.pdf