powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедуда компиллируется с ошибками
25 сообщений из 25, страница 1 из 1
Процедуда компиллируется с ошибками
    #32160483
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста.
Создал процедуру с курсором, но почему-то мне выдает сообщение , что мол поцедура создана с ошибками компиляции.
Вот процедура:
CREATE OR REPLACE PROCEDURE my_proc IS
date1 IN VARCHAR2;
date2 IN varchar2;
CURSOR my_cursor (my_rec my_cursor%Rowtype) IS
SELECT
to_char (a.dtime,'DD.MM.YY HH24:MI:SS') "D",
b.info "N",
to_char (a.sum_no_fee / 100,'999999999999D99') "S",
a.term_name "C"
FROM
trans a,
trans_extra b
WHERE
a.uno = b.uno AND
(b.cont_id = '0123' OR
b.cont_id = '0010' OR
b.cont_id = '0122' OR
b.cont_id = '0121' OR
b.cont_id = '0120')
AND
GOT BETWEEN TO_DATE ('||date1||', 'dd.mm.yyyy HH24:mi:ss')
AND
TO_DATE ('||date2||', 'dd.mm.yyyy HH24:mi:ss')
ORDER BY "D";
BEGIN
DBMS_OUTPUT.PUT_LINE ('D'||'N'||'S'||'C');
OPEN my_cursor;
LOOP
FETCH my_cursor INTO my_rec;
EXIT WHEN my_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (my_rec.D||' '||my_rec.N||' '||my_rec.S||' '||my_rec.C);
END LOOP;
CLOSE my_cursor;
END my_proc;

Что тут не правильно?
После успешной компилляции мне надо будет набрать следующее:
EXECUT my_proc ('первая дата','вторая дата')
Тогда выведет нужный мне результат.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160499
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE OR REPLACE PROCEDURE my_proc(date1 IN VARCHAR2, date2 IN varchar2)
IS
CURSOR my_cursor (my_rec my_cursor%Rowtype) IS
.......................
хотя если честно я не уверен что так можно передавать параметр курсору.

Интересно чего не использовать for по курсору???
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160509
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да совсем забыл
Традиционно:
-версия сервера
-какую ошибку выкинуло
-в чём ты компилируешь
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160533
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Спасибо за ответ и за вопросы. Честно говоря, я не профи, только начаниющий.
Версия сервера: Oracle7 Server Release 7.3.4.4.0 - Production
SQL> @d:\sql\1.sql
35 /

Warning: Procedure created with compilation errors.

SQL> set serveroutput on
SQL> begin
2 my_proc ('14.05.2003 00:00:00','14.05.2003 23:59:59')
3 end;
4 /
begin
*
ERROR at line 1:
ORA-06550: line 3, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
:= . ( % ;
The symbol ";" was substituted for "END" to continue.

ИЛИ ВОТ ТАК

SQL> execute my_proc('14.05.2003 00:00:00','14.05.2003 23:59:59');
begin my_proc('14.05.2003 00:00:00','14.05.2003 23:59:59'); end;

*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00905: object GC.MY_PROC is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


SQL>
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160562
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем то ты спросил чего там неверно - там всё неверно если честно
У тебя процедура без параметров, а вызывается с параметрами
у тебя переменная my_rec не объявлена
я не уверен что в версии 73 можно вот так объявлять курсор.
Установи какой-нибудь sqlNavigator или TOAD и посмотри что
за ошибка.
Компилирование в sqlplus это я считаю для отцов :-)
Кстати в Оракле анонимные блоки выполняют так
declare
--переменные и курсоры
begin
--код
end;
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160574
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После этого сообщения: Warning: Procedure created with compilation errors

сделай: show errors
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160588
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL> show error
Errors for PROCEDURE MY_PROC:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/8 PLS-00103: Encountered the symbol "IN" when expecting one of the
following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160593
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал соответствующие оргвыводы ???
;_)
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160608
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"CREATE OR REPLACE PROCEDURE my_proc IS
date1 IN VARCHAR2;
date2 IN varchar2; "

Синтаксис хоть бы посмотрел.

Код: plaintext
1.
2.
CREATE OR REPLACE PROCEDURE my_proc(date1 IN VARCHAR2, date2 IN varchar2) IS 
......
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160620
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже это исправил, но все равно ничего не получается, а по ошибке мне пока сложновато делать выводы и исправления, я только учусь.
Может натолкнете на правильный путь?
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160625
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если исправил, значит еще раз делаем
show errors
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160642
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL> show errors
Errors for PROCEDURE MY_PROC:

LINE/COL ERROR
-------- -----------------------------------------------------------------
1/22 PLS-00103: Encountered the symbol "(" when expecting one of the
following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> cursor
form

2/1 PLS-00103: Encountered the symbol "CURSOR" when expecting one of
the following:
* & - + ; / mod rem an exponent (**) and or ||
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160649
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А текст процедуры
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160652
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE OR REPLACE PROCEDURE my_proc IS (date1 IN VARCHAR2, date2 IN varchar2)
CURSOR my_cursor (my_rec my_cursor%Rowtype) IS
SELECT
to_char (a.dtime,'DD.MM.YY HH24:MI:SS') "D",
b.info "N",
to_char (a.sum_no_fee / 100,'999999999999D99') "S",
a.term_name "C"
FROM
trans a,
trans_extra b
WHERE
a.uno = b.uno AND
(b.cont_id = '0123' OR
b.cont_id = '0010' OR
b.cont_id = '0122' OR
b.cont_id = '0121' OR
b.cont_id = '0120')
AND
GOT BETWEEN TO_DATE ('||date1||', 'dd.mm.yyyy HH24:mi:ss')
AND
TO_DATE ('||date2||', 'dd.mm.yyyy HH24:mi:ss')
ORDER BY "D";
BEGIN
DBMS_OUTPUT.PUT_LINE ('D'||'N'||'S'||'C');
OPEN my_cursor;
LOOP
FETCH my_cursor INTO my_rec;
EXIT WHEN my_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (my_rec.D||' '||my_rec.N||' '||my_rec.S||' '||my_rec.C);
END LOOP;
CLOSE my_cursor;
END my_proc;
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160659
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE OR REPLACE PROCEDURE my_proc (
date1 IN VARCHAR2,date2 IN varchar2)
IS
CURSOR my_cursor
IS
SELECT
to_char (a.dtime,'DD.MM.YY HH24:MI:SS') "D",
b.info "N",
to_char (a.sum_no_fee / 100,'999999999999D99') "S",
a.term_name "C"
FROM
trans a,
trans_extra b
WHERE
a.uno = b.uno AND
(b.cont_id In ( '0123','0010','0122', '0121', '0120')
AND
GOT BETWEEN TO_DATE (date1, 'dd.mm.yyyy HH24:mi:ss')
AND
TO_DATE (date2, 'dd.mm.yyyy HH24:mi:ss')
ORDER BY 1;
my_rec my_cursor%rowtype;
BEGIN
DBMS_OUTPUT.PUT_LINE ('D'||'N'||'S'||'C');
OPEN my_cursor;
LOOP
FETCH my_cursor INTO my_rec;
EXIT WHEN my_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (my_rec.D||' '||my_rec.N||' '||my_rec.S||' '||my_rec.C);
END LOOP;
CLOSE my_cursor;
exception
When Others then
dbms_output.put_line(sqlerrm(sqlcode));
END my_proc;
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160665
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL> @d:\sql\2.sql
36 /

Warning: Procedure created with compilation errors.

SQL> show errors
Errors for PROCEDURE MY_PROC:

LINE/COL ERROR
-------- -----------------------------------------------------------------
21/1 PLS-00103: Encountered the symbol "ORDER" when expecting one of
the following:
. ( ) , * % & - + / mod rem an exponent (**) and or ||
The symbol ")" was substituted for "ORDER" to continue.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160675
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry!
CREATE OR REPLACE PROCEDURE my_proc (
date1 IN VARCHAR2,date2 IN varchar2)
IS
CURSOR my_cursor
IS
SELECT
to_char (a.dtime,'DD.MM.YY HH24:MI:SS') "D",
b.info "N",
to_char (a.sum_no_fee / 100,'999999999999D99') "S",
a.term_name "C"
FROM
trans a,
trans_extra b
WHERE
a.uno = b.uno AND
(b.cont_id In ( '0123','0010','0122', '0121', '0120') )
AND
GOT BETWEEN TO_DATE (date1, 'dd.mm.yyyy HH24:mi:ss')
AND
TO_DATE (date2, 'dd.mm.yyyy HH24:mi:ss')
ORDER BY 1;
my_rec my_cursor%rowtype;
BEGIN
DBMS_OUTPUT.PUT_LINE ('D'||'N'||'S'||'C');
OPEN my_cursor;
LOOP
FETCH my_cursor INTO my_rec;
EXIT WHEN my_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (my_rec.D||' '||my_rec.N||' '||my_rec.S||' '||my_rec.C);
END LOOP;
CLOSE my_cursor;
exception
When Others then
dbms_output.put_line(sqlerrm(sqlcode));
END my_proc;
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160684
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕ ПОЛУЧИЛОСЬ! СПАСИБО!!!
Только еще есть маленький вопрос.
А как в SQLNavigator можно набирать
execute my_proc ('date1','date2') ?
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160687
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
In Command Window::
Begin
my_proc ('14.05.2003 00:00:00','14.05.2003 23:59:59');
end;

Or
"Run Procedure"'s option
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160750
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОГРОМНОЕ СПАСИБО!!!

Жаль только что результаты выодятся не в таблице, а то мне потом надо в EXCEL экспортировать данные.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160771
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему просто выполнить запрос не хочешь?
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160783
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, просто хотел поручить это одному сотруднику (новичку), и чтобы он случайно его не удалил, не испортил, и чтобы огромного количества вопросов не было. Пусть уж в базе храниться.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160807
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оберни данные HTML- разметкой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
spool file.xls
dbms_output('<html><body><table>');
....
DBMS_OUTPUT.PUT_LINE('<tr>');
DBMS_OUTPUT.PUT_LINE ('<td>'||rmy_rec.D||'</td>'||'<td>'||my_rec.N||'</td>'||'<td>'||my_rec.S||'</td>'||'<td>'||my_rec.C||'</td>'); 
DBMS_OUTPUT.PUT_LINE('</tr>');
....
dbms_output('</table></body></html>');

spool off;

Открываешь Excel-ем - и всё замечательно.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160855
Okean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конечно дико извиняюсь, но что-то я не пойму куда это вставлять.

Я вообще в HTML не соображаю.
...
Рейтинг: 0 / 0
Процедуда компиллируется с ошибками
    #32160862
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же дал практически полный пример
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедуда компиллируется с ошибками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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