Если вы хотите, чтобы объявленный тип (как ЗАПИСЬ) мог видеть ваша функция, он понадобится вам в определении пакета, например,
create or replace
package MY_TYPES is
TYPE log_entry IS RECORD
(
is_warning BOOLEAN,
log_msg VARCHAR2(2000)
);
end;
, а затем вы можете сделать
create or replace
FUNCTION NewLogEntry(
is_warning IN NUMBER,
log_msg IN VARCHAR2) RETURN MY_TYPES.log_entry
IS
e MY_TYPES.log_entry;
BEGIN
e.is_warning := is_warning;
e.log_msg := log_msg;
return(e);
END NewLogEntry;
Есть и другие способы сделать это, но это должно заставить вас двигаться.Вот какой-то вывод
SQL> create or replace
2 package MY_TYPES is
3
4 TYPE log_entry IS RECORD
5 (
6 is_warning BOOLEAN,
7 log_msg VARCHAR2(2000)
8 );
9
10 end;
11 /
Package created.
SQL>
SQL> create or replace
2 FUNCTION NewLogEntry(
3 is_warning IN boolean,
4 log_msg IN VARCHAR2) RETURN MY_TYPES.log_entry
5 IS
6 e MY_TYPES.log_entry;
7 BEGIN
8 e.is_warning := is_warning;
9 e.log_msg := log_msg;
10 return(e);
11 END NewLogEntry;
12 /
Function created.