2015-12-17 2 views
-2

Я пытаюсь написать эту сделку в Oracle Developer:Объявляет переменную в PL/SQL, когда Совершить транзакцию

DECLARE @UserID int: 
SET @UserID = 2323; 

BEGIN TRANSACTION; 

DELETE FROM OWNER.TABLE 
WHERE USER_ID = @UserID; 

COMMIT TRANSACTION 

Но int красный - ошибка говорит о нет в или

+3

Oracle и tsql?!? Один тег должен быть удален ... – jarlh

+2

если это копия/вставленная проблема будет двоеточием после 'int', который должен быть точкой с запятой –

+0

Я изменяю точку с запятой, но все еще не так :( – RafalQA

ответ

1

Поскольку это помечено Oracle, и вы говорите, что вы используете Oracle Developer ...

Синтаксис, который вы используете, совершенно неверен для базы данных Oracle - вы пытаетесь использовать код, предназначенный для SQL SERVER.

Переписывание его оракула может быть столь же просто, как:

DELETE FROM OWNER.TABLE 
WHERE USER_ID = 2323; 

COMMIT; 

Однако, если вы особенно нуждаетесь в переменной связывания затем:

VARIABLE UserID NUMBER; 

BEGIN 
    :UserID := 2323; 
END; 
/

DELETE FROM OWNER.TABLE 
WHERE USER_ID = :UserID; 

COMMIT; 

или (с помощью SQL переменной в PL /) :

DECLARE 
    UserID OWNER.TABLE.USER_ID%TYPE := 2323; 
BEGIN 
    DELETE FROM OWNER.TABLE 
    WHERE USER_ID = UserID; 

    COMMIT; 
END; 
/

Однако, если SQL Server, то это работает:

SQL Fiddle

Сервер 2014 Настройка схемы MS SQL:

CREATE TABLE table_name (User_ID INT); 

INSERT INTO table_name VALUES (2322); 
INSERT INTO table_name VALUES (2323); 

DECLARE @UserID INT = 2323; 

BEGIN TRANSACTION; 

DELETE FROM table_name 
WHERE User_ID = @UserID; 

COMMIT TRANSACTION; 

Запрос 1:

SELECT * FROM table_name 

Results:

| User_ID | 
|---------| 
| 2322 | 
0

использовать эти один

DECLARE @UserID int; set @UserID = 2323 
+0

Я изменил точку с запятой, но все еще не так :( – RafalQA

+0

, на каком языке вы пытаетесь это –

+0

Я использую Oracalce Developer – RafalQA

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