如何在SQL Developer中执行SQL Server存储过程?

sdo*_*oca 139 sql-server stored-procedures oracle-sqldeveloper

我已经获得了一个只有执行存储过程权限的SQL Server数据库的用户帐户.我将JTDS SQL Server JDBC jar文件添加到SQL Developer并将其添加为第三方JDBC驱动程序.我可以成功登录到SQL Server数据库.我得到了运行该过程的语法:

EXEC proc_name 'paramValue1' 'paramValue2'
Run Code Online (Sandbox Code Playgroud)

当我将其作为语句或脚本运行时,我收到此错误:

Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Run Code Online (Sandbox Code Playgroud)

我尝试将语句包装BEGIN/END,但得到相同的错误.是否可以从SQL Developer调用该过程?如果是这样,我需要使用什么语法?

Tem*_*ema 218

您不需要EXEC子句.简单地使用

proc_name paramValue1, paramValue2
Run Code Online (Sandbox Code Playgroud)

(你需要逗号作为Misnomer提到的)

  • 这条规则有例外吗?我似乎得到错误"sp_dev_mystoredproc'附近的语法不正确." 使用此语法执行时. (8认同)
  • 我强烈建议您访问@MuriloKunze建议的链接.非常重要的是要知道. (3认同)
  • 在我的情况下,需要EXEC优先proc_name (2认同)

Vis*_*hal 68

你错过了 ,

EXEC proc_name 'paramValue1','paramValue2'
Run Code Online (Sandbox Code Playgroud)


小智 18

你需要这样做:

    exec procName 
    @parameter_1_Name = 'parameter_1_Value', 
    @parameter_2_name = 'parameter_2_value',
    @parameter_z_name = 'parameter_z_value'
Run Code Online (Sandbox Code Playgroud)


小智 5

EXECUTE [or EXEC] procedure_name
@parameter_1_Name = 'parameter_1_Value', 
@parameter_2_name = 'parameter_2_value',
@parameter_z_name = 'parameter_z_value'
Run Code Online (Sandbox Code Playgroud)