Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 07.05.2010
Сообщений: 22

Функция и скрипт для расширения

20.06.2010, 14:45. Показов 1975. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
от у меня проблема я не хочу делать подселекты или вносить то что очень похоже, может у кого был такой опыт?
вот например
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT таблица2.число, таблица2.время1, таблица2.время2
,таблица5.число, таблица5.время1, таблица5.время2
FROM Инстанции таблица1, Значения таблица2, атрибуты таблица3
,Инстанции таблица4, Значения таблица5, атрибуты таблица6
WHERE 1=1
AND таблица4.ИД = таблица6.ИД
................................
AND таблица5.атрибутИД = :переменная
................................
AND :переменнаявермени BETWEEN .... AND ....
AND таблица1.ИД = таблица3.ИД
................................
AND таблица2.атрибутИД = :переменная
................................
AND :переменнаявермени BETWEEN .... AND ....
Всё бы хорошо и можно было засунуть в функцию если не надо было возвращать 3(6) значения

а есть такие встроенные возможности например у MSSQL? Просто интересно))
Написал временно через With, но всё же хочется лучше
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2010, 14:45
Ответы с готовыми решениями:

Скрипт для расширения
Добрый день форумчане! В этой сфере программирования ни-ни, поэтому обращаюсь за помощью к Вам! Суть такова: мне нужно чтобы скрипт...

Скрипт для переименования файлов расширения .doc
Подскажите пожалуйста как написать скрипт: Переименовать все файлы с расширением .doc, присвоив им имена: 1.doc, 2.doc, 3.doc и так...

Скрипт для веб страниц: проверка расширения
при переносе и удалении веб страниц папки не переносятся как при копировании, удалении файлов проверить является файл htm, html ? ...

6
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
21.06.2010, 23:41
Ну, хотите "засунуть в функцию", так засуньте. Пусть себе возвращает несколько значений, что мешает-то?
Хотя subquery factoring, с большой вероятностью, более оптимальное решение.
1
0 / 0 / 1
Регистрация: 07.05.2010
Сообщений: 22
22.06.2010, 01:45  [ТС]
Цитата Сообщение от dlinnbly Посмотреть сообщение
Ну, хотите "засунуть в функцию", так засуньте. Пусть себе возвращает несколько значений, что мешает-то?
Хотя subquery factoring, с большой вероятностью, более оптимальное решение.
Как так? Функция может же возвращать только 1 значение, так было же всегда... и как работать с subquery factoring?
0
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
22.06.2010, 11:26
Цитата Сообщение от Travik Посмотреть сообщение
как работать с subquery factoring?
Subquery factoring - это и есть, использованный Вами WITH.
Цитата Сообщение от Travik Посмотреть сообщение
Как так? Функция может же возвращать только 1 значение, так было же всегда...
Функции разные бывают, никто не мешает вернуть значение типа "таблица", например:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--создадим необходимые типы
CREATE OR REPLACE TYPE testtp AS object (fld NUMBER);
 
CREATE OR REPLACE TYPE testtp_list AS TABLE OF testtp;
 
--конвеерная функция
CREATE OR REPLACE
  FUNCTION testfn  
    RETURN testtp_list
  PIPELINED
  IS
    ret_val testtp_list;
  BEGIN
    FOR rec IN (SELECT ROWNUM rn FROM dual CONNECT BY LEVEL < 11)
    LOOP
      PIPE ROW(testtp(rec.rn));
    END LOOP;
    RETURN;
  END;
 
--обратимся к конвеерной функции как к таблице
SELECT * FROM TABLE(testfn);
 
--кроме конвеерной можно и с обычной функциеё так работать
CREATE OR REPLACE
  FUNCTION testfn2
    RETURN testtp_list
  IS
    ret_val testtp_list;
  BEGIN
    SELECT CAST(multiset
      (SELECT ROWNUM FROM dual CONNECT BY LEVEL < 11
      ) AS testtp_list)
    INTO ret_val
    FROM dual ;
    RETURN ret_val;
  END;
  
--обратимся к обычной функции как к таблице
SELECT * FROM TABLE(testfn2);
2
0 / 0 / 1
Регистрация: 07.05.2010
Сообщений: 22
28.06.2010, 12:45  [ТС]
Цитата Сообщение от dlinnbly Посмотреть сообщение
Функции разные бывают, никто не мешает вернуть значение типа "таблица", например:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE
  FUNCTION testfn2
    RETURN testtp_list
  IS
    ret_val testtp_list;
  BEGIN
    SELECT CAST(multiset
      (SELECT ROWNUM FROM dual CONNECT BY LEVEL < 11
      ) AS testtp_list)
    INTO ret_val
    FROM dual ;
    RETURN ret_val;
  END;
Вот только вопросик такой...
Почему именно так начинается
CREATE OR REPLACE
FUNCTION testfn2
RETURN testtp_list
IS
почему ретурн стоит вначале т.е???
0
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
28.06.2010, 14:27
Цитата Сообщение от Travik Посмотреть сообщение
Вот только вопросик такой...
Почему именно так начинается
CREATE OR REPLACE
FUNCTION testfn2
RETURN testtp_list
IS
почему ретурн стоит вначале т.е???
Ну, насколько я помню он всегда там стоит, функции нужно знать какой тип данных возвращать, для этого он там и ставится.
1
0 / 0 / 1
Регистрация: 07.05.2010
Сообщений: 22
28.06.2010, 14:41  [ТС]
Цитата Сообщение от dlinnbly Посмотреть сообщение
Ну, насколько я помню он всегда там стоит, функции нужно знать какой тип данных возвращать, для этого он там и ставится.
Ой прости что задал глупый вопрос))) Сглупил)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2010, 14:41
Помогаю со студенческими работами здесь

Скрипт для переименования файлов с сохранением расширения
Всем привет. Прошу помочь с написанием скрипта BAT, т.к. сам я в нем полный ноль. Задача. Имеется несколько файлов: setup.exe ...

Скрипт, получить все имена в каталоге за исключением одного расширения
@echo off for %%i in (*) do ( echo %%i )Как указать то, чтобы скрипт вывел все наименования файлов, за исключением одного...

как доработать скрипт чтобы расширения загружаемого изображения менялось на .jpg
if (isset($_FILES)){ $errors =array(); $file_name=$_FILES; $file_size=$_FILES; $file_tmp=$_FILES; $file_type=$_FILES; ...

Можно ли удалять после установки расширения папку установщика расширения
Надо было установить расширение, сделал папку на хостинге(tmp) и скопировал файлзилой туда распакованные файлы расширения(20 мин....

У меня исчезли расширения EXE файлов в Windows XP. Сервис->Свойства папки->Вид->Скрывать расширения отключено
Может у кого-то было такое?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru