powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pl/SQL пустой вывод процедуры
6 сообщений из 6, страница 1 из 1
Pl/SQL пустой вывод процедуры
    #39639087
demamon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Есть 3 таблицы:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE TABLE "SYSTEM"."ID_DOWNLOADS" 
(   "LOADID" NUMBER NOT NULL ENABLE, 
    "DATELOAD" DATE NOT NULL ENABLE, 
    CONSTRAINT "ID_DOWNLOADS_PK" PRIMARY KEY ("LOADID")
);

CREATE TABLE "SYSTEM"."CAR_BRAND" 
(   "CARBRANDID" NUMBER NOT NULL ENABLE, 
    "BRANDNAME" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
    CONSTRAINT "CAR_BRAND_PK" PRIMARY KEY ("CARBRANDID")
);

CREATE TABLE "SYSTEM"."SALECAR" 
(   "CARBRANDID" NUMBER NOT NULL ENABLE, 
    "CARMODELID" NUMBER NOT NULL ENABLE, 
    "COSTT" NUMBER NOT NULL ENABLE, 
    "SALEDATE" DATE NOT NULL ENABLE, 
    "LOADID" NUMBER
);


Нужно написать процедуру, в которою подается дата. По этой дате нужно с первой таблицы взять loadid и присвоить переменной. Потом по значению этой переменной вывести таблицу в которой будет BRANDNAME и сумма COST по этому бренду.

Я написал следующие
Код: 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.
SET SERVEROUTPUT ON
CREATE OR REPLACE Procedure SummSale ( date_in IN date )
  IS
 no_loadid1 EXCEPTION;
 Loadid1 number;
 TYPE SummSale IS RECORD (
    Brandname   VARCHAR2(30),
    Costt  NUMBER (20)
   );
   summ_sale SummSale;
 begin
 SELECT loadid INTO loadid1 from id_downloads where dateload = date_in;
 IF loadid1 = NULL THEN
    RAISE no_loadid1;
 ELSE
   DBMS_OUTPUT.PUT_LINE(loadid1);
   SELECT Br.BRANDNAME, SUM(Sc.COSTT) AS COSTT INTO Summ_Sale.Brandname, Summ_Sale.Costt 
   FROM CAR_BRAND Br INNER JOIN SALECAR Sc ON Br.CARBRANDID = Sc.CARMODELID 
   WHERE (((loadid1) = Sc.loadid)) GROUP BY Br.Brandname; 
   DBMS_OUTPUT.PUT_LINE('Brandname:   ' || Summ_Sale.Brandname);
   DBMS_OUTPUT.PUT_LINE('Cost:   ' || Summ_Sale.Costt);
 END if;
 exception
 WHEN no_loadid1 THEN
 raise_application_error (-20001,'load id not found in order to submit.');
 END SummSale;
 /
show errors
 declare
 date1 date;
 begin
 date1:=28/01/2018;
 SummSale(date1); 
 end;


Проблема в том что процедура компилируется но вывод при этом пустой. Сначала я подозревал не работающий селект, но при выводе loadid1 то же пусто, а на него обработчик стоит.
...
Рейтинг: 0 / 0
Pl/SQL пустой вывод процедуры
    #39639093
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вывод при этом пустой

Не подтверждаю.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL>  declare
  2   date1 date;
  3   begin
  4   date1:=to_date('28/01/2018', 'dd/mm/yyyy');
  5   SummSale(date1);
  6   end;
  7  /

declare
 date1 date;
 begin
 date1:=to_date('28/01/2018', 'dd/mm/yyyy');
 SummSale(date1);
 end;

ORA-01403: данные не найдены
ORA-06512: на  "SYSTEM.SUMMSALE", line 11
ORA-06512: на  line 5
...
Рейтинг: 0 / 0
Pl/SQL пустой вывод процедуры
    #39639095
demamon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

Да, время не правильно передавал.
Теперь выдает not a GROUP BY expression
...
Рейтинг: 0 / 0
Pl/SQL пустой вывод процедуры
    #39639184
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demamon,

А какой смысл закладывался в эту бессмысленную конструкцию?
Код: plsql
1.
IF loadid1 = NULL THEN
...
Рейтинг: 0 / 0
Pl/SQL пустой вывод процедуры
    #39639269
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demamon,

И попробуйте заложиться на:

Код: plsql
1.
ORA-01422: exact fetch returns more than requested number of rows ORA-06512
...
Рейтинг: 0 / 0
Pl/SQL пустой вывод процедуры
    #39639365
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demamon, почему в SYSTEM?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pl/SQL пустой вывод процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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