Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / pl sql анонимный блок / 8 сообщений из 8, страница 1 из 1
11.12.2021, 11:52
    #40119172
KiraBatya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
нужно написать анонимный блок в котором используя неявный курсор вывести клиентов которые не делали заказы в 2007 году.
Структуру прикладываю прошу помочь.
...
Рейтинг: 0 / 0
11.12.2021, 13:49
    #40119212
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
1. Для этой задачи не нужен PL/SQL.
2. Для этой задачи не нужен неявный курсор.
3. Серверу некуда выводить.

Вернись к преподавателю и уточни задание.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.12.2021, 13:58
    #40119214
KiraBatya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
Dimitry Sibiryakov,я понимаю что это можно сделать простым селектом,но требуется именно с использованием курсора,явного/неявного
...
Рейтинг: 0 / 0
11.12.2021, 14:02
    #40119215
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
Ну так и сделайте простым селектом, а потом оберните его в FOR...LOOP и будет
вам ваш неявный курсор.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.12.2021, 15:51
    #40119249
KiraBatya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
Dimitry Sibiryakov,
Я пробовал сделать что-то такое
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
declare
cursor cs is select orders.order_num,orders.cust,orders.order_date,customers.company 
            from orders inner join customers
             ON  orders.order_date > TO_DATE('01-JAN-08','DD-MM-YY') AND orders.order_date <TO_DATE('01-JAN-99','DD-MM-YY');
buf orders%rowtype;
buf1 customers%rowtype;
begin
    open cs;
        fetch cs into buf.order_num,buf.cust,buf.order_date;
        while  cs%found
        loop
        dbms_output.put_line(cs%rowcount || '  ' || buf.order_num || '   ' || buf.cust || '  '
        || buf.order_date);
        fetch cs into buf.order_num,buf.cust,buf.order_date;
        end loop;
            dbms_output.put_line(cs%rowcount);
    close cs;   
end;


Но препод сказала что я должен исключить 2007 год,чтобы его не было,и то что я написал выше неправильно,я подумал нужно как-то впихнуть
Код: plsql
1.
 not in (select order_date from orders where orders.order_date > TO_DATE('01-JAN-08','DD-MM-YY') AND orders.order_date <TO_DATE('01-JAN-99','DD-MM-YY'));

но у меня не получилось
...
Рейтинг: 0 / 0
11.12.2021, 16:12
    #40119259
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
А, то есть ты даже запрос написать не смог?

Да, NOT IN (или лучше NOT EXISTS) надо вставлять в правильную дырку иначе чуда
не произойдёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.12.2021, 16:18
    #40119263
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select  customers.company 
  from  customers
  where customers.cust_num not in (
                                   select  orders.cust
                                     from  orders
                                     where orders.order_date >= DATE '2007-01-01'
                                     and orders.order_date < DATE '2008-01-01'
                                  );



SY.
...
Рейтинг: 0 / 0
15.12.2021, 20:29
    #40120404
KiraBatya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl sql анонимный блок
SY,весьма благодарен
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / pl sql анонимный блок / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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