Показать полную графическую версию : pl/sql
начал я изучать язык pl/sql (самостоятельно) , вот у меня такой вопрос....вот допустим есть у меня код написанный на этом языке, и как мне его исполнять? нужно в sql+ ввести : @(путь к файлу-коду) ?, тогда получиться просто исполняемый файл, или существуют какието компиляторы для этого языка????
существует возможность выполнить команды(процедуры) в среде СУБД (как расширение имеющихся возможностей) - например, в postgres-е
написал я вот такой код для заполнения моей пробной таблицы в которой 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
вместо введённых значений вводяться значения указанные в ключе Values
А без кавычек пробовал?
insert into peoples (имя, ник, дом_тел, сот_тел, мыло)
values (имя, ник, дом_тел, сот_тел, мыло)
всё, дошло до меня......... :) я просто забыл поставить литерал & , а если без кавычек писать, то ошибку выдаст: недопустимо имя столбца или что то вроде того, я вчера до 2.00 из-за этого сидел :)
предлагаю создать на форуме раздел по БД :)
:oszone:
Prisoner
22-01-2004, 04:21
C предложениями вам сюда (http://forum.oszone.net/forums.cgi?forum=14).
а если мне нужно ввести в таблицу кучу данных, тогда бы мне пришлось этот скрипт запускать много раз, а если после последнего приглашения для ввода данных , будет ещё одно приглашение : хотите ли вы продолжить ввод и создать ещё одну строку, я вот попробывал написать вот такой код, только вот ерунда получилась, точнее ничего не получилось:
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' , вообщем ХЕЛП начинающему советом :)
теперь вроде исправил , но когда доходит до 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;
/
какова моя ошибка, помогите плиззз , бессоница млин, пока не исправлю спать нормально не буду :(
modem
К сожелению под рукой нет книжки, если доживёшь с бессоницей до понедельника тогда гляну :-)
вчарась тоже книжецу заказал , тока она зараза идти будет до меня аж три недели :-(
modem
вчарась тоже книжецу заказал , тока она зараза идти будет до меня аж три недели :-(
У меня этих книжец была целая коробка, щас они занимают целую полку в шкафу, в два ряда :)
Но книжицы вообще классные, правда половина на аглицком :gigi:
помоему вот эти две строки:
.....
......
<<MID>>
......
......
if (q = 'Y') THEN goto MID;
создают бесконечный цикл, а их pl/sql не распознаёт, и поэтому виснет у меня сиквел+ , но вопрос мой в силе:
а если мне нужно ввести в таблицу кучу данных, тогда бы мне пришлось этот скрипт запускать много раз, а если после последнего приглашения для ввода данных , будет ещё одно приглашение : хотите ли вы продолжить ввод и создать ещё одну строку
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.