2015-05-10 3 views
1

Это может быть вопрос непрофессионала. Тем не менее я занимался серфингом в Интернете и не мог пройти. Я получаю следующее сообщение об ошибке при запуске простой хранимой процедуры в AginityОшибка сохранения хранимой процедуры

CREATE OR REPLACE PROCEDURE test() 
RETURNS VARCHAR(10) 
LANGUAGE NZPLSQL AS 
BEGIN_PROC 
DECLARE 
BEGIN 
RETURN "SUCCESS" 
END 
END_PROC; 

Нет ошибок дается при выполнении выше.

Получить ошибку только когда выполнить следующие

EXECUTE TEST(); 

Ошибка:

ERROR [01000] NOTICE: plpgsql: ERROR during compile of TEST near line 3 

ERROR [HY000] ERROR: missing ; at end of SQL statement 

Благодарности

ответ

2
CREATE OR REPLACE PROCEDURE test() 
RETURNS VARCHAR(10) 
LANGUAGE NZPLSQL AS 
BEGIN_PROC 
-- No need a DECLARE when you don have to declare anything 
BEGIN 
RETURN "SUCCESS" ; -- you just need a semi colon! 
END; -- also here 
END_PROC; 
+0

спасибо за Ваш ответ. Но почему это не приводит к какой-либо ошибке при создании процедуры и существует ли какое-либо правило относительно размещения в полутонах. Я сделал еще одну сохраненную процедуру, но дал другую ошибку. Поэтому было бы замечательно, если бы вы могли предложить какую-либо хорошую справочную ссылку относительно Netezza, хранящейся в Proc. – SMPH

+0

@MPH Я хорошо знаю о хранимых процедурах Oracle, но не версию Netezza, хотя я слышал об этом. –

+2

Ниже приведены [хранимые процедуры docs] (http://www-01.ibm.com/support/knowledgecenter/SSULQD_7.2.0/com.ibm.nz.sproc.doc/c_sproc_stored_procs.html). Правило в том, что вам нужно поставить точку с запятой, где бы вы не закончили утверждение. Например, BEGIN не является заявлением сам по себе, но вместе с блоком BEGIN ... END, поэтому ему не нужна точка с запятой. END делает. –

Смежные вопросы