2010-11-09 29 views
116

Me han dado una cuenta de usuario en una base de datos de SQL Server que solo tiene privilegios para ejecutar un procedimiento almacenado. Agregué el archivo jar JDBC JDBC SQL Server a SQL Developer y lo agregué como un controlador JDBC de terceros. Puedo iniciar sesión con éxito en la base de datos de SQL Server. Me dieron esta sintaxis para ejecutar el procedimiento:Cómo ejecutar el procedimiento almacenado de SQL Server en SQL Developer?

EXEC proc_name 'paramValue1' 'paramValue2' 

Cuando ejecuto esto, ya sea como una declaración o un guión, me sale este error:

Error starting at line 1 in command: 
EXEC proc_name 'paramValue1' 'paramValue2' 
Error report: 
Incorrect syntax near the keyword 'BEGIN'. 

he intentado envolver la declaración en BEGIN/END, pero obtiene el mismo error ¿Es posible llamar al procedimiento desde SQL Developer? Si es así, ¿qué sintaxis necesito usar?

Respuesta

187

No es necesario cláusula EXEC. Sólo tiene que utilizar

proc_name paramValue1, paramValue2 

(y necesitas comas como se ha mencionado Misnomer)

+7

¿Hay alguna excepción a esta regla?Parece que recibo el error "Sintaxis incorrecta cerca de 'sp_dev_mystoredproc'." cuando se ejecuta con esta sintaxis Se requiere – Nuzzolilo

+0

EXEC proc_name antes en mi caso –

+2

@Nuzzolilo https://stackoverflow.com/a/37334739/1304456 – MuriloKunze

57

Te faltan ,

EXEC proc_name 'paramValue1','paramValue2' 
+1

Agregué la coma que faltaba, pero de nuevo, sigo recibiendo el mismo error. – sdoca

+0

¿Cuáles son sus parámetros si son varchar, entonces solo necesita las comillas ... aparte de eso no se le ocurre nada ... podría intentar esto solo ejecute esto en una nueva ventana- 'EXEC proc_name' y vea si te pide el segundo parámetro ... entonces al menos sabes que tu sytax es correcto ... si no funciona significa que probablemente no tienes el nombre de proc almacenado correcto ... prueba el nombre completo calificado ... – Vishal

+0

Quité el segundo parámetro y todavía el mismo error No creo que sea un procedimiento en funcionamiento. El comando EXEC no tiene sintaxis resaltada, así que supongo que el Desarrollador no lo reconoce aunque la conexión sea a una base de datos de SQL Server. Pero no puedo encontrar nada en la web para confirmar/negar eso. – sdoca

-6

Los procedimientos almacenados se pueden ejecutar en herramienta de desarrollo SQL mediante el siguiente sintaxis

COMENZAR ProcedureName(); END;

Si hay algún parámetro, entonces tiene que pasarse.

+0

¿Por qué está encerrando una sola instrucción en un bloque de enunciado? Tienes que hacerlo por un [serie de instrucciones T-SQL] (https://msdn.microsoft.com/en-us/library/ms190487.aspx) solamente. –

15

que tiene que hacer esto:

exec procName 
    @parameter_1_Name = 'parameter_1_Value', 
    @parameter_2_name = 'parameter_2_value', 
    @parameter_z_name = 'parameter_z_value' 
-9
Select * from Table name ..i.e(are you save table name in sql(TEST) k. 

Select * from TEST then you will execute your project. 
+1

Bienvenido a stackoverflow. Tome [esto] recorrido (http://stackoverflow.com/tour) para conocer cómo funciona este sitio y para qué sirve. ¿Cual es tu respuesta? –

+2

LOL - pregunto que esta respuesta era como antes de la edición. –

+0

@TobyHolland clic en el 'eslabón editado' –

6
EXECUTE [or EXEC] procedure_name 
    @parameter_1_Name = 'parameter_1_Value', 
    @parameter_2_name = 'parameter_2_value', 
    @parameter_z_name = 'parameter_z_value' 
-2

si simplemente necesita excute el procedimiento almacenado proc_name 'paramValue1' , 'paramValue2'... al mismo tiempo que está excute más de una consulta como una consulta de selección y el procedimiento almacenado debe agregar select * from tableName EXCE proc_name paramValue1 , paramValue2...

0
EXEC proc_name @paramValue1 = 0, @paramValue2 = 'some text'; 
GO 

Si el objetivo del Procedimiento almacenado es realizar un INSERT en una tabla que tiene un campo de Identidad declarado, entonces el campo, en este escenario @paramValue1, debe declararse y pasar el valor 0, porque se autoincrecerá.

Cuestiones relacionadas