Я создаю хранимую процедуру внутри моей базы данных 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.
Пожалуйста, помогите, я Я все еще изучаю хранимые процедуры, поэтому я еще не привык к этому. Любая помощь будет оценена, спасибо!
как я могу это сделать? Я развертываю свои хранимые процессы в IBM Data Studio, щелкнув правой кнопкой мыши и выбрав DEPLOY –
Извините, мой ответ не поможет, но это должно - удалить слово 'as' и заменить его фразой« LANGUAGE SQL »следующим образом: 'CREATE OR REPLACE ПРОЦЕДУРА PWDCHANGE (UNAME В VARCHAR (32), OLDPWD В VARCHAR (32), NEWPWD В VARCHAR (32)) ЯЗЫК SQL НАЧАТЬ ...' – adrianz