Как выполнить хранимую процедуру SQL Server в SQL Developer?
мне была предоставлена учетная запись пользователя для базы данных SQL Server, которая имеет только права на выполнение хранимой процедуры. Я добавил jtds SQL Server JDBC jar-файл в SQL Developer и добавил его в качестве стороннего драйвера JDBC. Я могу успешно войти в базу данных SQL Server. Мне дали этот синтаксис для вызова процедуры:
EXEC proc_name 'paramValue1' 'paramValue2'
когда я запускаю это как оператор или скрипт, я получаю эту ошибку:
Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Я попытался обернуть заявление в BEGIN/END, но получаю ту же ошибку. Можно ли вызвать процедуру из SQL Developer? Если да, то какой синтаксис мне нужно использовать?
9 ответов:
вам не нужно предложение EXEC. Просто используйте
proc_name paramValue1, paramValue2(и вам нужны запятые, как указано в неправильном названии)
вы должны сделать это:
exec procName @parameter_1_Name = 'parameter_1_Value', @parameter_2_name = 'parameter_2_value', @parameter_z_name = 'parameter_z_value'
EXECUTE [or EXEC] procedure_name @parameter_1_Name = 'parameter_1_Value', @parameter_2_name = 'parameter_2_value', @parameter_z_name = 'parameter_z_value'
EXEC proc_name @paramValue1 = 0, @paramValue2 = 'some text'; GOЕсли целью хранимой процедуры является выполнение
INSERTв таблице, в которой объявлено поле идентификатора, затем поле в этом сценарии@paramValue1, должно быть признано и просто передать значение 0, потому что это будет автоинкрементной.
Я знаю, что это старый. Но это может помочь другим.
Я добавил функцию вызова SP между началом / концом. Вот рабочий скрипт.
ALTER Proc [dbo].[DepartmentAddOrEdit] @Id int, @Code varchar(100), @Name varchar(100), @IsActive bit , @LocationId int, @CreatedBy int, @UpdatedBy int AS IF(@Id = 0) BEGIN INSERT INTO Department (Code,Name,IsActive,LocationId,CreatedBy,UpdatedBy,CreatedAt) VALUES(@Code,@Name,@IsActive,@LocationId,@CreatedBy,@UpdatedBy,CURRENT_TIMESTAMP) EXEC dbo.LogAdd @CreatedBy,'DEPARTMENT',@Name END ELSE UPDATE Department SET Code = @Code, Name = @Name, IsActive = @IsActive, LocationId = @LocationId, CreatedBy = @CreatedBy, UpdatedBy = @UpdatedBy, UpdatedAt = CURRENT_TIMESTAMP where Id = @Id
Если вам просто нужно удалить хранимую процедуру
proc_name 'paramValue1' , 'paramValue2'...в то же время вы excute более одного запроса, как один запрос select и хранимая процедура, которую вы должны добавитьselect * from tableName EXCE proc_name paramValue1 , paramValue2...
хранимые процедуры могут быть запущены в SQL developer tool с помощью приведенного ниже синтаксиса
начать имя процедуры(); Конец;
Если есть какие-то параметры, то он должен быть принят.
Select * from Table name ..i.e(are you save table name in sql(TEST) k. Select * from TEST then you will execute your project.
Comments