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

Откуда:
Сообщений: 408
Пытаюсь на SQL написать запрос в PL/SQL Developer, в котором
часто используется одно и тоже значение даты.

Вопрос:
Как объявить константу , например типа:

declare MyDate Date; 
MyDate= '10.03.2007'


и как к ней обратиться в дальнейшем ?

where    (FIRSTDATE >  MyDate)





20 мар 07, 07:24    [3917308]     Ответить | Цитировать Сообщить модератору
 Re: Как объявить константу в PL/SQL Develor  [new]
kdanylo
Member

Откуда: Lviv
Сообщений: 342
DECLARE
myConstant_dt CONSTANT DATE:= TO_DATE('03-10-2007','DD-MM-YYYY');

20 мар 07, 08:18    [3917354]     Ответить | Цитировать Сообщить модератору
 Re: Как объявить константу в PL/SQL Develor  [new]
kennethr
Member

Откуда:
Сообщений: 175
Test Window. Внизу объявляете параметры и их значения. В запросе используете связываемые переменные.
20 мар 07, 08:21    [3917359]     Ответить | Цитировать Сообщить модератору
 Re: Как объявить константу в PL/SQL Develor  [new]
PVB
Member

Откуда:
Сообщений: 408
К сожалению не работает.
После вставки
DECLARE
myConstant_dt CONSTANT DATE:= TO_DATE('03-10-2007','DD-MM-YYYY');


Select Manager as "Manager", s1 as "Undef",s2 as "War",s3 as "MIN" ,s4 as "MJ" ,s5 as "CR"  ,s6 as "Clear",s7 as "% неопределенных"
from (select Manager ,sum(Und) s1, sum(War) s2,  sum(MINO) s3, sum(maj) s4, sum(cr) s5, sum(Cl) s6, (sum(Und) * 100)/( sum(War)+sum(MINO)+sum(maj)+sum(cr)+sum(Cl)) s7

from (

выходит ошибка

ORA-06550
PLS-00103: Encountered thr symbol "Select" when expecting one of then following:
begin function package pragma procedure subtype type use ...
...
20 мар 07, 08:30    [3917367]     Ответить | Цитировать Сообщить модератору
 Re: Как объявить константу в PL/SQL Develor  [new]
Volder
Member

Откуда: Москва
Сообщений: 474
PVB
К сожалению не работает.
После вставки
DECLARE
myConstant_dt CONSTANT DATE:= TO_DATE('03-10-2007','DD-MM-YYYY');


Select Manager as "Manager", s1 as "Undef",s2 as "War",s3 as "MIN" ,s4 as "MJ" ,s5 as "CR"  ,s6 as "Clear",s7 as "% неопределенных"
from (select Manager ,sum(Und) s1, sum(War) s2,  sum(MINO) s3, sum(maj) s4, sum(cr) s5, sum(Cl) s6, (sum(Und) * 100)/( sum(War)+sum(MINO)+sum(maj)+sum(cr)+sum(Cl)) s7

from (

выходит ошибка

ORA-06550
PLS-00103: Encountered thr symbol "Select" when expecting one of then following:
begin function package pragma procedure subtype type use ...
...


почитай матчасть для начала
анонимный блок
declare
...
begin
...
end;

простой
select ... from...
дальше тоже даст ошибку

смотри в сторону
select... INTO...from...
20 мар 07, 08:38    [3917378]     Ответить | Цитировать Сообщить модератору
 Re: Как объявить константу в PL/SQL Develor  [new]
Полночный
Member

Откуда:
Сообщений: 312
Если хочется использовать константу в обычном запросе (вне PL/SQL), то используйте Command Window (в SQL Window не получится) и макросы:
SQL> define start_date=to_date('20070101', 'yyyymmdd')
SQL> select &&start_date macro_date from dual;

MACRO_DATE
-----------
01.01.2007

SQL>
Или bind - переменные:
SQL> set autoprint off
SQL> var v_bind date;
SQL> begin :v_bind := sysdate; end;
  2  /

PL/SQL procedure successfully completed

SQL> select :v_bind binded_date from dual;

BINDED_DATE
-----------
20.03.2007

SQL> 
И про то, и про другое читайте в User Guide по SQL*Plus, Command Window в PL/SQL Dev реализует часть возможностей плюса.
20 мар 07, 12:04    [3918429]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить