2013-03-09 2 views
0

Я создаю хранимую процедуру внутри моей базы данных DB2, вот моя хранимые процедуры кода:Исправления DB2 хранимой процедура ошибка

CREATE OR REPLACE PROCEDURE PWDCHANGE (UNAME IN VARCHAR(32), 
              OLDPWD IN VARCHAR(32), 
              NEWPWD IN VARCHAR(32)) 
    AS 
    BEGIN 
     IF LOGINTABLE.USERNAME = UNAME AND LOGINTABLE.PASSWORD = OLDPWD THEN 
     UPDATE LOGINTABLE SET PASSWORD = NEWPWD; 
     DBMS_OUTPUT.PUT_LINE('Password Changed Successfully!'); 
     ELSE DBMS_OUTPUT.PUT_LINE('Incorrect Old Password Input'); 
    END IF; 
    END; 

Но, как я развернуть его в моем IBM Data Studio выводит сообщение об ошибке, которая говорит:

Deploy SENJOBLADE.PWDCHANGE(VARCHAR(32), VARCHAR(32), VARCHAR(32)) 

    Running 
    SENJOBLADE.PWDCHANGE - Deploy started. 
    Create stored procedure returns SQLCODE: -104, SQLSTATE: 42601. 
    SENJOBLADE.PWDCHANGE: 1: An unexpected token "VARCHAR" was found following "PWDCHANGE (UNAME IN". Expected tokens may include: ",".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.13.111 
    An unexpected token "VARCHAR" was found following "PWDCHANGE (UNAME IN". Expected tokens may include: ",".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.13.111 
    SENJOBLADE.PWDCHANGE - Deploy failed. 
    SENJOBLADE.PWDCHANGE - Roll back completed successfully. 

Я не знаю, почему VARCHAR неожиданный маркер, я не знаю, что нужно изменить, чтобы иметь возможность развернуть свою хранимую процедуру. Функция этой хранимой процедуры состоит в том, чтобы принять 3 входа, которые используются для изменения пароля, имя пользователя, текущий пароль и пароль для замены, поэтому у меня есть значения 3 IN.

SENJOBLADE мое имя схемы, LOGINTABLE это имя таблицы, которая имеет два столбца, то USERNAME & ПАРОЛЬ колонка

Я попытался удалить VARCHARS и эта ошибка отображается:

Deploy SENJOBLADE.PWDCHANGE(IN, IN, IN) 

    Running 
    SENJOBLADE.PWDCHANGE - Deploy started. 
    Create stored procedure returns SQLCODE: -104, SQLSTATE: 42601. 
    SENJOBLADE.PWDCHANGE: 2: An unexpected token "BEGIN" was found following "PWD IN) 
      AS 
    ". Expected tokens may include: ":".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.13.111 

    An unexpected token "BEGIN" was found following "PWD IN) 
      AS 
    ". Expected tokens may include: ":".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.13.111 

    SENJOBLADE.PWDCHANGE - Deploy failed. 
    SENJOBLADE.PWDCHANGE - Roll back completed successfully. 

Пожалуйста, помогите, я Я все еще изучаю хранимые процедуры, поэтому я еще не привык к этому. Любая помощь будет оценена, спасибо!

ответ

0

try Deploy SENJOBLADE.PWDCHANGE(UNAME, OLDPWD, NEWPWD)

+0

как я могу это сделать? Я развертываю свои хранимые процессы в IBM Data Studio, щелкнув правой кнопкой мыши и выбрав DEPLOY –

+0

Извините, мой ответ не поможет, но это должно - удалить слово 'as' и заменить его фразой« LANGUAGE SQL »следующим образом: 'CREATE OR REPLACE ПРОЦЕДУРА PWDCHANGE (UNAME В VARCHAR (32), OLDPWD В VARCHAR (32), NEWPWD В VARCHAR (32)) ЯЗЫК SQL НАЧАТЬ ...' – adrianz

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