Здесь есть несколько проблем ..
1) Почему вы хотите создать процедуру внутри Java-кода?Вы должны создать его непосредственно в Oracle с помощью SQLPLUS или любого другого инструмента базы данных.
2) Oracle не ожидает (), когда отсутствуют параметры входа / выхода / выхода, поэтому они вам не нужны.Вам также необходимо использовать ключевые слова as или is после процедуры создания или замены.В противном случае это выдаст ошибку времени компиляции, которую вы видите ..
1 CREATE OR REPLACE PROCEDURE LIVE
2 IS
3 begin
4 null; ---This would usually have your logic,
--Null indicates "DO nothing". Just to concentrate on
--the "declare" issues
5* end;
SQL> /
Procedure created.
3) Третья ошибка заключается в том, что вы выбираете поля из таблицы, но нет переменных "INTO", которыми вы являетесьвыбирая их.
1 CREATE OR REPLACE PROCEDURE LIVE
2 AS
3 v_ename scott.emp.ename%type;
4 begin
5 select ename
6 from scott.emp
7 where empno = 7369;
8* end;
SQL> /
Warning: Procedure created with compilation errors.
SQL> show errors
Errors for PROCEDURE LIVE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/3 PLS-00428: an INTO clause is expected in this SELECT statement
1 CREATE OR REPLACE PROCEDURE LIVE
2 AS
3 v_ename scott.emp.ename%type;
4 begin
5 select ename
6 into v_ename
7 from scott.emp
8 where empno = 7369;
9* end;
SQL> /
Procedure created.
4) Вы создаете процедуру с именем «LIVE» и вызываете «LIVERESULTS». Опять же, вам не нужно () после вызова процедуры.
5) На основеПриведенные ниже комментарии Аллана и ответ Cybernate (+1): если вы пытаетесь вернуть набор результатов, вам следует открыть рефкурсор для выбора и затем вернуть его вызывающей программе.