如何在SQL Developer中执行SQL Server存储过程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQL Developer中执行SQL Server存储过程?相关的知识,希望对你有一定的参考价值。
我已经获得了一个只有执行存储过程权限的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调用该过程?如果是这样,我需要使用什么语法?
您不需要EXEC子句。简单地使用
proc_name paramValue1, paramValue2
(你需要逗号作为Misnomer提到的)
你缺少,
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
如果存储过程目标是在声明了Identity字段的表上执行INSERT
,则应声明该场景@paramValue1
中的字段,并且只传递值0,因为它将自动递增。
我知道这是旧的。但这可能有助于其他人。
我在BEGIN / END之间添加了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'...
,则必须添加
select * from tableName
EXEC proc_name paramValue1 , paramValue2...
可以使用以下语法在sql developer工具中运行存储过程
BEGIN procedurename();结束;
如果有任何参数,则必须通过。
Select * from Table name ..i.e(are you save table name in sql(TEST) k.
Select * from TEST then you will execute your project.
以上是关于如何在SQL Developer中执行SQL Server存储过程?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL Developer 中多次执行相同的存储过程?
如何在 Oracle SQL Developer 中执行超过 100 万条插入查询?