如何在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 万条插入查询?

pl sql developer应用问题

如何在sql developer中执行同时具有out参数和返回值的函数以获取结果

pl sql developer怎么执行sql

pl sql developer怎么执行sql