Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создать функцию / 10 сообщений из 10, страница 1 из 1
13.02.2018, 20:01
    #39601471
Gomn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
Написать функцию, определяющую пол продавца. Используя функцию, вывести продавцов - мужчин.
Помогите разобраться что в этом коде не так?
CREATE OR REPLACE FUNCTION SEX(SEX IN VARCHAR2) IS
FULL_NAME SELLERS.FULL_NAME%TYPE;
SEX SELLERS.FULL_NAME%TYPE;
N NUMBER;
G NUMBER;
CURSOR C1 IS
SELECT FULL_NAME,SEX FROM SELLERS WHERE SEX=SEX;
BEGIN
SELECT COUNT(*)
INTO G
FROM SELLERS
WHERE SEX=SEX;
OPEN C1;
N:=1;
WHILE N <= G LOOP
FETCH C1 INTO FULL_NAME, SEX ;
N:=N+1;
DBMS_OUTPUT.PUT_LINE(FULL_NAME);
END LOOP;
CLOSE C1;
END;
/
SHOW ERRORS;

SELECT SEX('М') FROM DUAL;
...
Рейтинг: 0 / 0
13.02.2018, 20:26
    #39601473
Создать функцию
GomnSEX SELLERSвыполни, компилятор сообщит текст ошибок, номера строк и позиции.
...
Рейтинг: 0 / 0
14.02.2018, 08:16
    #39601560
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
Gomnчто в этом коде не так?Автор.
Не насилуй свою извилину.
...
Рейтинг: 0 / 0
14.02.2018, 08:37
    #39601570
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
GomnНаписать функцию, определяющую пол продавца. Используя функцию, вывести продавцов - мужчин.
Странная постановка задачи... очень странная, если это про одну и ту же функциюGomnПомогите разобраться что в этом коде не так?Когда сравниваешь строки, делай это в одном регистре upper(SEX) = upper(SEX) . Ведь не известно как они в таблице хранятся.
А саму функцию проще организовать так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace function SEX(SEX in SELLERS.SEX%type) is
  result SELLERS.FULL_NAME%type;
begin
  select LISTAGG(FULL_NAME, ', ') WITHIN group(order by FULL_NAME)
    into result
    from SELLERS
   where upper(SEX) = upper(SEX);
  return result;
end;
...
Рейтинг: 0 / 0
14.02.2018, 08:54
    #39601581
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
шК0ДЕР
Код: plsql
1.
where upper(SEX) = upper(SEX);

Тупишь за "автором"?
...
Рейтинг: 0 / 0
14.02.2018, 09:10
    #39601587
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
Elic, да, утро... конечно же так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace function SEX(IN_SEX in SELLERS.SEX%type) is
  result SELLERS.FULL_NAME%type;
begin
  select LISTAGG(s.FULL_NAME, ', ') WITHIN group(order by s.FULL_NAME)
    into result
    from SELLERS s
   where upper(s.SEX) = upper(IN_SEX);
  return result;
end;
...
Рейтинг: 0 / 0
14.02.2018, 09:33
    #39601596
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
шК0ДЕР, недалеко ты по уровню от ТСа ушел...
Начни с доки
...
Рейтинг: 0 / 0
14.02.2018, 09:50
    #39601601
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
Gomnфункцию, определяющую пол продавца.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
create function twitch_seller_pns(p_seller_id in number) return number is
  l_cnt number := 0; --has hole by default
begin
  select count(*) into l_cnt from sellers s where s.seller_id = p_seller_id and s.pns_length > 0;
  return l_cnt; -- 0 - has hole or is not the man anymore, 1 - has pns longer than 0.0(0)1 mm
end;
/
...
Рейтинг: 0 / 0
14.02.2018, 09:54
    #39601604
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
GomnИспользуя функцию, вывести продавцов - мужчин
Код: plsql
1.
select 'Get out here, '||s.full_name||'!' from sellers s where twitch_seller_pns(s.seller_id) = 1;
...
Рейтинг: 0 / 0
14.02.2018, 19:07
    #39601999
sex.sex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать функцию
Gomn,

sex.sex = sex

как это мило
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создать функцию / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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