powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедура с входным varchar2 параметром
12 сообщений из 12, страница 1 из 1
Процедура с входным varchar2 параметром
    #39354941
Атикин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста чайнику!!!
Среда - Oracle XE.
Есть две связанных таблицы. Таб1(фильм, студия, номинация,бюджет), Таб2(номинация, количество, стоимость).
Нужно создать процедуру, которая выводит фильмы для номинации с максимальным призовым фондом, за исключением номинации, заданной в параметре. Как только не пробовап, не получается. При прогоне программы не опознаёт вводимый параметр. А компилируется процедура нормально.
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39354943
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АтикинКак только не пробовапНе верим. http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39354955
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Атикин,
имя параметра часом не совпадает с именем поля таблицы?


ps
если не секрет, покажите как пробовали
.....
stax
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39354972
Атикин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..,


Вот таблицы:
create table FILMS
(FNAME varchar2(12),
FKST varchar2(12),
FNOM varchar2(12),
FBUD number(6));

create table NOMIN
(NNOM varchar2(12) NOT NULL,
NKOL number(4) NOT NULL,
NPRICE number(6));

ALTER TABLE NOMIN
ADD (CONSTRAINT nomin_pk_nnom PRIMARY KEY (nnom));

ALTER TABLE FILMS
ADD (CONSTRAINT films_pk_fname PRIMARY KEY (fname),
CONSTRAINT films_fk_fnom FOREIGN KEY (fnom)
REFERENCES nomin(nnom));

Попытки в файле
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39354975
Атикин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, вот таблицы:
create table FILMS
(FNAME varchar2(12),
FKST varchar2(12),
FNOM varchar2(12),
FBUD number(6));

create table NOMIN
(NNOM varchar2(12) NOT NULL,
NKOL number(4) NOT NULL,
NPRICE number(6));

ALTER TABLE NOMIN
ADD (CONSTRAINT nomin_pk_nnom PRIMARY KEY (nnom));

ALTER TABLE FILMS
ADD (CONSTRAINT films_pk_fname PRIMARY KEY (fname),
CONSTRAINT films_fk_fnom FOREIGN KEY (fnom)
REFERENCES nomin(nnom));
А попытки в файле
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355028
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы одно скажите - нафига тут динамический SQL? Чтобы показать, мол, я его умею? Ну тогда выводите запрос для отладки перед его выполнением.
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355035
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АтикинПомогите пожалуйста чайнику!!!
Среда - Oracle XE.
Есть две связанных таблицы. Таб1(фильм, студия, номинация,бюджет), Таб2(номинация, количество, стоимость).
Нужно создать процедуру, которая выводит фильмы для номинации с максимальным призовым фондом, за исключением номинации, заданной в параметре. Как только не пробовап, не получается. При прогоне программы не опознаёт вводимый параметр. А компилируется процедура нормально.

1) где тестовые данные? (набор фильмов и номинаций)
2) "создать процедуру, которая выводит " куда/как выводит?
3) что есть "максимальный призовой фонд"
4) "за исключением номинации", исключение для поиска мах, или для вывода?



зы
зачем Вам execute immediate?

.....
stax
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355043
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Атикин,

мож натолкнет на решение
Код: plsql
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.
41.
42.
43.
44.
45.
46.
47.
48.
SQL> select * from FILMS;

FNAME        FKST         FNOM               FBUD
------------ ------------ ------------ ----------
Операция Ы   Союз         К                   100
Белое солнце Союз         Б                   200
Золушка      Союз         С                    50
Салогонщики  Союз         К                   100
Вий          Союз         Ж                   100

SQL> select * from NOMIN;

NNOM               NKOL     NPRICE
------------ ---------- ----------
Б                     1       9000
К                     2       1000
С                     1       2000
Ж                     1       1500

SQL> create or replace procedure TUPIK (NAG in varchar2) is
  2   begin
  3    for r in (
  4         select FNAME from FILMS f
  5         where f.FNOM in (select nnom
  6               from (select nnom,rank() over (order by (NKOL*NPRICE) DESC) rn
  7                     from nomin n
  8                     where nnom<>NAG)
  9               where rn=1)) loop
 10       dbms_output.put_line(r.fname);
 11    end loop;
 12  end TUPIK;
 13  /

Procedure created.

SQL> exec TUPIK('K');
Белое солнце

PL/SQL procedure successfully completed.

SQL> exec TUPIK('Б');
Операция Ы
Золушка
Салогонщики

PL/SQL procedure successfully completed.

SQL>




.....
stax
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355081
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,

Тут непонятно кто курица а кто яйцо. Т.e. нужно ли найти в таблице фильм у котоого max $ номинация из таблицы номинаций или для номинации с max $ в таблице номинаций найти фильм в таблице фильмов? Твое решение для второго случая. Для первого что-то типа:

Код: plsql
1.
2.
3.
4.
5.
SELECT  MAX(FNAME) KEEP(DENSE_RANK LAST ORDER BY NKOL*NPRICE) FNAME
  FROM  FILMS F,
        NOMIN N
  WHERE NNOM != NAG
    AND FNOM = NNOM;



SY.
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355110
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYstax..,

Тут непонятно кто курица а кто яйцо. Т.e. нужно ли найти в таблице фильм у котоого max $ номинация из таблицы номинаций или для номинации с max $ в таблице номинаций найти фильм в таблице фильмов? Твое решение для второго случая. Для первого что-то типа:

Код: plsql
1.
2.
3.
4.
5.
SELECT  MAX(FNAME) KEEP(DENSE_RANK LAST ORDER BY NKOL*NPRICE) FNAME
  FROM  FILMS F,
        NOMIN N
  WHERE NNOM != NAG
    AND FNOM = NNOM;



SY.

я ж задал вопросы 4)

имхо last не очень подходит, rank луче, напр если несколько фильмов попадет под критерий

.....
stax
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355111
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYstax..,

Тут непонятно кто курица а кто яйцо. Т.e. нужно ли найти в таблице фильм у котоого max $ номинация из таблицы номинаций или для номинации с max $ в таблице номинаций найти фильм в таблице фильмов? Твое решение для второго случая. Для первого что-то типа:

Код: plsql
1.
2.
3.
4.
5.
SELECT  MAX(FNAME) KEEP(DENSE_RANK LAST ORDER BY NKOL*NPRICE) FNAME
  FROM  FILMS F,
        NOMIN N
  WHERE NNOM != NAG
    AND FNOM = NNOM;



SY.

я ж задал вопросы 4)

имхо last не очень подходит, rank луче, напр если несколько фильмов попадет под критерий

.....
stax
...
Рейтинг: 0 / 0
Процедура с входным varchar2 параметром
    #39355120
Атикин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..,
СПАСИБО!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедура с входным varchar2 параметром
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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