Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   pl/sql (http://forum.oszone.net/showthread.php?t=30028)

modem 19-01-2004 00:37 206794

начал я изучать язык pl/sql (самостоятельно) , вот у меня такой вопрос....вот допустим есть у меня код написанный на этом языке, и как мне его исполнять? нужно в sql+ ввести : @(путь к файлу-коду) ?, тогда получиться просто исполняемый файл, или существуют какието компиляторы для этого языка????


mar 19-01-2004 19:29 206795

существует возможность выполнить команды(процедуры) в среде СУБД (как расширение имеющихся возможностей) - например, в postgres-е

modem 20-01-2004 23:53 206796

написал я вот такой код для заполнения моей пробной таблицы в которой 5 столбцов(имя, ник, дом_тел, сот_тел, мыло)
ACCEPT имя char prompt 'введите имя:'
ACCEPT ник char prompt 'введите ник:'
ACCEPT дом_тел  char prompt 'введите номер дом_тел:'
ACCEPT сот_тел char prompt 'введите номер сот_тел:'
ACCEPT мыло char prompt 'введите email:'
insert into peoples (имя, ник, дом_тел,
сот_тел, мыло)
values ('имя', 'ник', 'дом_тел',
'сот_тел','мыло')
запускается и выполняется всё без ошибок но в результате вместо введённых значений вводяться значения указанные в ключе Values

SQL> @c:\insert.txt
введите имя:Модулятор-демодулятор
введите ник:модем
введите номер дом_тел:911
введите номер сот_тел:03
введите email:lamer@lamer.ru

SQL> select * from peoples
 2  /

ИМЯ   НИК   ДОМ_ТЕЛ   СОТ_ТЕЛ   МЫЛО                      
----- ----- --------- --------- ------      
имя   ник   дом_тел   сот_тел   мыло                      

SQL> exit


Megabyte 21-01-2004 10:16 206797

Цитата:

вместо введённых значений вводяться значения указанные в ключе Values
А без кавычек пробовал?
Код:

insert into peoples (имя, ник, дом_тел, сот_тел, мыло)
values (имя, ник, дом_тел, сот_тел, мыло)


modem 21-01-2004 17:32 206798

всё, дошло до меня......... :) я просто забыл поставить литерал & , а если без кавычек писать, то ошибку выдаст: недопустимо имя столбца или что то вроде того, я вчера до 2.00 из-за этого сидел :)

предлагаю создать на форуме  раздел по БД :)
:oszone:

Prisoner 22-01-2004 04:21 206799

C предложениями вам сюда.

modem 22-01-2004 18:24 206800

а если мне нужно ввести в таблицу кучу данных, тогда бы мне пришлось этот скрипт запускать много раз, а если после последнего приглашения для ввода данных , будет ещё одно приглашение : хотите ли вы продолжить ввод и создать ещё одну строку, я вот попробЫвал написать вот такой код, только вот ерунда получилась, точнее ничего не получилось:
Цитата:

Begin
<<MID>>
ACCEPT имя_z char prompt 'введите имя:'
ACCEPT ник_z char prompt 'введите ник:'
ACCEPT дом_тел_z  char prompt 'введите номер дом_тел:'
ACCEPT сот_тел_z char prompt 'введите номер сот_тел:'
ACCEPT мыло_z char prompt 'введите email:'
ACCEPT конец char prompt 'продолжите ввод?(Y/N):'
insert into peoples (имя, ник, дом_тел,
сот_тел, мыло);
values('&имя_z', '&ник_z', '&дом_тел_z', '&сот_тел_z', '&мыло_z' );
if (&конец = 'Y') THEN goto MID ;
elsif (&конец = 'N') THEN
end if;
end ;
/
если я на вопрос продолжения ввода отвечаю Y, то и иду не к началу а просто присваивается значение : конец = 'Y' , такая же беда с вводом 'N' , вообщем ХЕЛП начинающему советом :)

modem 23-01-2004 00:34 206801

теперь вроде исправил , но когда доходит до goto зависает sql+
Цитата:

declare
q varchar2(5) :='$YorN';
begin

<<MID>>
loop
insert into peoples (имя, ник, дом_тел,
сот_тел, мыло)
values('&имя_z', '&ник_z', '&дом_тел_z', '&сот_тел_z', '&мыло_z' );
if (q = 'Y') THEN goto MID;
end if;
exit when (q = 'N');
end loop;
end;
/
какова моя ошибка, помогите плиззз , бессоница млин, пока не исправлю спать нормально не буду :(

Bugs 24-01-2004 05:58 206802

modem
К сожелению под рукой нет книжки, если доживёшь с бессоницей до понедельника тогда гляну :-)

modem 24-01-2004 22:23 206803

вчарась тоже книжецу заказал , тока она зараза идти будет до меня аж три недели :-(

Bugs 25-01-2004 05:27 206804

modem
Цитата:

вчарась тоже книжецу заказал , тока она зараза идти будет до меня аж три недели :-(
У меня этих книжец была целая коробка, щас они занимают целую полку в шкафу, в два ряда :)
Но книжицы вообще классные, правда половина на аглицком :gigi:

modem 25-01-2004 21:07 206805

помоему вот эти две строки:
.....
......
<<MID>>
......
......
if (q = 'Y') THEN goto MID;

создают бесконечный цикл, а их pl/sql не распознаёт, и поэтому виснет у меня сиквел+ , но вопрос мой в силе:
Цитата:

а если мне нужно ввести в таблицу кучу данных, тогда бы мне пришлось этот скрипт запускать много раз, а если после последнего приглашения для ввода данных , будет ещё одно приглашение : хотите ли вы продолжить ввод и создать ещё одну строку


Время: 11:28.

Время: 11:28.
© OSzone.net 2001-