Форум программистов, компьютерный форум, киберфорум
Наши страницы
Oracle
Войти
Регистрация
Восстановить пароль
 
JleHuH213
2 / 2 / 1
Регистрация: 22.10.2012
Сообщений: 206
1

Использование пользовательских типов в функциях

16.08.2019, 14:21. Просмотров 106. Ответов 1
Метки нет (Все метки)

Добрый день!

Подскажите пожалуйста как получить данные из возврата функции.

С начала.
Создал собственный тип данных:
SQL
1
2
3
4
5
6
CREATE OR REPLACE TYPE t_set_value IS object (
  code          varchar2(250),
  VALUE         varchar2(4000),
  USER_DATETIME   DATE,
  USER            NUMBER
);
Есть функция:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE OR REPLACE FUNCTION FNC_TTRB_VALUE 
(
  NUM_ID IN NUMBER 
, ATTRB IN VARCHAR2
) RETURN t_attrb_set_value 
  IS 
    v_result  t_set_value;
  BEGIN
  SELECT 
    pa.CODE AS code,
    pa.value AS VALUE,
    pa.MOD_DATETIME AS USER_DATETIME,
    pa.USER_ID AS USER
    INTO v_result.code, v_result.value, v_result.USER_DATETIME, v_result.USER
  FROM ATTRBS pa
  WHERE pa.NUM_ID = NUM_ID AND pa.CODE = ATTRB
  fetch FIRST 1 ROW ONLY;   
   
  RETURN(v_result);
 
END FNC_GET_ATTRB_VALUE;

Когда выполняю запрос:
SQL
1
2
SELECT FNC_TTRB_VALUE(5,'PART').USER  AS res
FROM SYS.DUAL
Ошибка: Ссылка на неинициализированный составной тип

Как получать данные из составного типа возвращенного по функции?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2019, 14:21
Ответы с готовыми решениями:

Использование пользовательских типов SQL Server в Entity Framework
такая проблема, создал в SQL Server пользовательский тип t_ID, который представляет из себя таблицу...

Формализация в пользовательских функциях
Составьте, пожалуйста, программу! Дано комплексное число (a,b) и натуральное n (n > 1). Найдите...

Обобщение типов в функциях
у меня есть три функции которые делают одно и тоже как можно было бы превратить их в одну public...

Создание пользовательских типов
помогите пожалуйста написать программу. (необходимо написать с применением операторов...

Преобразование пользовательских типов
Добрый день. Суть проблемы такова. Есть 2 класса. Преобразовать через оператор получается. А через...

1
Anvano
311 / 216 / 106
Регистрация: 12.05.2016
Сообщений: 606
18.08.2019, 12:03 2
У вас название типа в RETURN не совпадает с названием типа внутри функции (как и собственно название функции с названием после END), так что ваша функция даже не скомпилируется (скорее всего просто опечатка при посте на форум)

А вообще - просто конструхтор типа вызвать забыли:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE FUNCTION FNC_TTRB_VALUE 
(
  NUM_ID IN NUMBER 
, ATTRB IN VARCHAR2
) RETURN t_attrb_set_value 
  IS 
    v_result  t_set_value := t_set_value(NULL,NULL,NULL,NULL);
  BEGIN
    SELECT 
      pa.CODE AS code,
      pa.value AS VALUE,
 
 .....
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2019, 12:03

Преобразование пользовательских типов
Здравствуйте. Помогите с одним вопросом, это пример из книги Лафоре ООП С++, не могу разобраться...

Приведение пользовательских типов
#include <iostream> using namespace std; class cl { friend cl operator+(cl& s2); public:...

Функции на основе пользовательских типов данных
Всем привет. Читаю книгу страуструпа и заметил там функции на основе пользовательских типов данных....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru