sysdate как параметр процедуры

sdfasf
Дата: 10.12.2007 13:50:43
SQL> create or replace procedure test(p_date IN OUT date) is
  2  begin
  3    NULL;
  4  end test;
  5  /

Procedure created

SQL> begin
  2  test(sysdate);
  3  end;
  4  /

begin
test(sysdate);
end;

ORA-06550: Строка 2, столбец 6:
PLS-00363: выражение 'SYSDATE' не м.б. использовано как адресат назначения
ORA-06550: Строка 2, столбец 1:
PL/SQL: Statement ignored

SQL> begin
  2  test(p_date=>sysdate);
  3  end;
  4  /

begin
test(p_date=>sysdate);
end;

ORA-06550: Строка 2, столбец 6:
PLS-00363: выражение '<expression>' не м.б. использовано как адресат назначения
ORA-06550: Строка 2, столбец 1:
PL/SQL: Statement ignored

SQL> edit
SQL> /

begin
test(p_date=>:sysdate);
end;

ORA-01008: не все переменные привязаны



Почему не могу использовать значение возвращаемое ф-ей sysdate, в качестве входного параметра процедуры?
trak
Дата: 10.12.2007 13:52:28
sdfasf
[src oracle]

Почему не могу использовать значение возвращаемое ф-ей sysdate, в качестве входного параметра процедуры?

Потому, что оно у Вас не ВХОДНОЕ, а ВХОДНОЕ-ВЫХОДНОЕ ( IN OUT)
Вы или OUT уберите, или переменную передавайте.
Для облегчения понимания,
как Вы себе представляете вызов:

SYSDATE() := SYSDATE();
???
tru55
Дата: 10.12.2007 13:52:43
в качестве входного можешь. Но у тебя ведь IN OUT
miksoft
Дата: 10.12.2007 13:52:47
sdfasf
SQL> create or replace procedure test(p_date IN OUT date) is

Почему не могу использовать значение возвращаемое ф-ей sysdate, в качестве входного параметра процедуры?
как же "входного", когда у вас написано "IN OUT" ?
PPA
Дата: 10.12.2007 13:53:20
sdfasf

Почему не могу использовать значение возвращаемое ф-ей sysdate, в качестве входного параметра процедуры?


OUT убери
зы
Дата: 10.12.2007 13:53:21
потому что у тебя процедура с аут параметром...
перед вызовом процедуры присвой переменной сисдейт и уже потом вызывай...
sdfasf
Дата: 10.12.2007 14:03:00
всем спасибо!
Gluk (Kazan)
Дата: 10.12.2007 14:17:57
OUT-изм