powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / присваивание результата функции
6 сообщений из 6, страница 1 из 1
присваивание результата функции
    #32112156
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
есть тип
create or replace type ret_date as object(
payerid integer,
dopl date
)

вот функция
function get_noplat(pid in integer) return ret_date is
RetBorgRec ret_date;
begin
RetBorgRec:=ret_date(null,null);
...
...
return(RetBorgRec);
end get_noplat;

вызываю ее в другой функции
ret_dat:=get_noplat(pid);
или так ret_dat:=ret_date(get_noplat(pid));

Получаю сообщение об ошибке PLS-00306

Error: PLS-00306: wrong number or types of arguments in call to 'GET_NOPLAT'
Line: 47
Text: ret_dat:=ret_date(get_noplat(pid));

В документации написано, что функция может возвратить
Object type (PL/SQL8)
Что мне делать?
...
Рейтинг: 0 / 0
присваивание результата функции
    #32112175
Balbidon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А pid какого типа передается?
И какого типа ret_dat?
...
Рейтинг: 0 / 0
присваивание результата функции
    #32112192
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если
ret_dat ret_date;
pid integer;

ret_dat:=get_noplat(pid);

То все должно быть ОК
...
Рейтинг: 0 / 0
присваивание результата функции
    #32112219
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оно должно бы быть ОК
function COI_get_borg(inreg in integer) return borg_tab is
lsd_obj borg_obj;
ret_dat ret_date;
pid integer;
....
begin
....
ret_dat :=ret_date(null,null);
...
ret_dat :=get_noplat(pid);
...
end

function get_noplat(pid in integer) return ret_date is
RetBorgRec ret_date;
pdate date;
begin
RetBorgRec:=ret_date(null,null);
....
....
return(RetBorgRec);
end get_noplat;

Однако
Compilation errors for PACKAGE BODY REN.CONSUMERPACK

Error: PLS-00306: wrong number or types of arguments in call to 'GET_NOPLAT'
Line: 41
Text: ret_dat :=get_noplat(pid);

Error: PL/SQL: Statement ignored
Line: 41
Text: ret_dat :=get_noplat(pid);
...
Рейтинг: 0 / 0
присваивание результата функции
    #32112390
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O kakoy versii Oracle idet rech?
...
Рейтинг: 0 / 0
присваивание результата функции
    #32112394
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create or replace package CONSUMERPACK is

-- Author : ALEE
-- Created : 2/27/2003 7:43:51 PM
-- Purpose :

-- Public type declarations
type ret_date is Record (payerid integer := 0,
dopl date := Null);


function get_noplat(pid in integer) return ret_date;


Procedure test;

end CONSUMERPACK;


create or replace package body CONSUMERPACK is
function get_noplat(pid in integer) return ret_date
is
RetBorgRec ret_date;
begin
RetBorgRec.payerid := pid;
return(RetBorgRec);
end get_noplat;

Procedure test is
ret_dat ret_date;
pid Integer := 0;
Begin
pid := 1;
ret_dat:=get_noplat(pid);
dbms_output.put_line(ret_dat.payerid);
pid := 2;
ret_dat:=get_noplat(pid);
dbms_output.put_line(ret_dat.payerid);
end test;
end CONSUMERPACK;


begin
-- Call the procedure
consumerpack.test;
end;
1
2
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / присваивание результата функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]