Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Oracle sql девелоперы нужна ваша помощь ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
В соседнем разделе
https://www.sql.ru/forum/actualthread.aspx?bid=20&tid=347716
есть непонятные глюки. Прошу помощи!
-----------------------------------------------------------
Информация – это то, чем я пользуюсь для принятия решений.

Бернерс-Ли
10 окт 06, 09:57    [3239892]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
g3d
Member

Откуда: Столица
Сообщений: 158
У тебя там переменная не объявлена а ты в нее передаешь значение сиквенса.
10 окт 06, 10:26    [3240095]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
Stax.
Guest
чем не устраивает ответ tru55?
имхо найболее правильный
.....
stax
10 окт 06, 10:34    [3240142]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Всё получилось всем огромное спасибо!
-----------------------------------------------------------
Информация – это то, чем я пользуюсь для принятия решений.

Бернерс-Ли
10 окт 06, 10:52    [3240253]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Stax.
чем не устраивает ответ tru55?
имхо найболее правильный
.....
stax

Вылетает ошибка
---------------------------
Project1
---------------------------
ORA-06550: line 4, column 12:
PLS-00103: Encountered the symbol "ID" when expecting one of the following:

:= . ( @ % ;

---------------------------
OK
---------------------------


вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin
if OraSession1.Connected then
begin
try
OraSession1.StartTransaction;
SmartQuery1.SQL.Clear;
SmartQuery1.Close;
SmartQuery1.SQL.Add('declare ID_VAR number;');
SmartQuery1.SQL.Add('begin');
// SmartQuery1.SQL.Add(' select askp1.T1_SEQ.NEXTVAL INTO ID_VAR from dual;');
SmartQuery1.SQL.Add(' insert into T1(ID,N) values (T1_SEQ.NEXTVAL,TRIM(:name_akts));');
SmartQuery1.SQL.Add(' RETURNING ID INTO :ID_VAR;');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,1);');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,2);');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,3);');
SmartQuery1.SQL.Add('end;');
SmartQuery1.ParamByName('name_akts').AsWideString := AktName.Text;
ShowMessage(SmartQuery1.SQL.Text);
SmartQuery1.ExecSQL;
OraSession1.Commit;
except
OraSession1.Rollback;
raise;{поднимаем исключение}
end;
end;
end;
10 окт 06, 10:59    [3240295]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
Ты отделил returning от оператора insert.

SmartQuery1.SQL.Add(' insert into T1(ID,N) values (T1_SEQ.NEXTVAL,TRIM(:name_akts));');
SmartQuery1.SQL.Add(' RETURNING ID INTO :ID_VAR;');

Внимательнее надо быть.
И вот это тоже ошибка:

INTO :ID_VAR
10 окт 06, 11:18    [3240437]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
Stax.
Guest
копосов нв
Stax.
чем не устраивает ответ tru55?
имхо найболее правильный
.....
stax

Вылетает ошибка
---------------------------
Project1
---------------------------
ORA-06550: line 4, column 12:
PLS-00103: Encountered the symbol "ID" when expecting one of the following:

:= . ( @ % ;

---------------------------
OK
---------------------------


вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin
if OraSession1.Connected then
begin
try
OraSession1.StartTransaction;
SmartQuery1.SQL.Clear;
SmartQuery1.Close;
SmartQuery1.SQL.Add('declare ID_VAR number;');
SmartQuery1.SQL.Add('begin');
// SmartQuery1.SQL.Add(' select askp1.T1_SEQ.NEXTVAL INTO ID_VAR from dual;');
SmartQuery1.SQL.Add(' insert into T1(ID,N) values (T1_SEQ.NEXTVAL,TRIM(:name_akts))!!!;!!!');
SmartQuery1.SQL.Add(' RETURNING ID INTO !!!:!!!ID_VAR;');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,1);');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,2);');
SmartQuery1.SQL.Add(' insert into T12(ID1,ID2) values (ID_VAR,3);');
SmartQuery1.SQL.Add('end;');
SmartQuery1.ParamByName('name_akts').AsWideString := AktName.Text;
ShowMessage(SmartQuery1.SQL.Text);
SmartQuery1.ExecSQL;
OraSession1.Commit;
except
OraSession1.Rollback;
raise;{поднимаем исключение}
end;
end;
end;
10 окт 06, 11:18    [3240444]     Ответить | Цитировать Сообщить модератору
 Re: Oracle sql девелоперы нужна ваша помощь ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Всё ок, ещё раз спасибо!


-----------------------------------------------------------
Информация – это то, чем я пользуюсь для принятия решений.

Бернерс-Ли
10 окт 06, 12:03    [3240858]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить