Hoe SQL Server Stored Procedure in SQL Developer uit te voeren?

Ik heb een gebruikersaccount gekregen voor een SQL Server-database die alleen privileges heeft om een opgeslagen procedure uit te voeren. Ik heb het JTDS SQL Server JDBC jar-bestand toegevoegd aan SQL Developer en toegevoegd als een JDBC-stuurprogramma van derden. Ik kan met succes inloggen op de SQL Server-database. Ik kreeg deze syntaxis om de procedure uit te voeren:

EXEC proc_name 'paramValue1' 'paramValue2'

Als ik dit als een instructie of een script uitvoer, krijg ik deze foutmelding:

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

Ik heb geprobeerd de instructie in BEGIN/ENDte plaatsen, maar krijg dezelfde foutmelding. Is het mogelijk om de procedure vanuit SQL Developer aan te roepen? Zo ja, welke syntaxis moet ik gebruiken?


Antwoord 1, autoriteit 100%

Je hebt geen EXEC-clausule nodig. Gebruik gewoon

proc_name paramValue1, paramValue2

(en je hebt komma’s nodig zoals de verkeerde benaming al zei)


Antwoord 2, autoriteit 32%

Je mist ,

EXEC proc_name 'paramValue1','paramValue2'

Antwoord 3, autoriteit 9%

U moet dit doen:

exec procName 
@parameter_1_Name = 'parameter_1_Value', 
@parameter_2_name = 'parameter_2_value',
@parameter_z_name = 'parameter_z_value'

Antwoord 4, autoriteit 2%

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

Antwoord 5

Ik weet dat dit de oude is. Maar dit kan anderen helpen.

Ik heb een SP-oproepfunctie toegevoegd tussen BEGIN/END. Hier is een werkend script.

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 

Antwoord 6

Je moet een ‘,’ toevoegen tussen de paramValue1 en paramValue2. Je hebt het gemist.

EXEC proc_name 'paramValue1','paramValue2'

Antwoord 7

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

Als het doel van de Opgeslagen procedure is om een INSERTuit te voeren op een tabel waarvoor een identiteitsveld is gedeclareerd, dan moet het veld, in dit scenario @paramValue1, worden gedeclareerd en geef gewoon de waarde 0 door, omdat deze automatisch wordt verhoogd.


Antwoord 8

Als u uw opgeslagen procedure alleen maar wilt uitvoeren
proc_name 'paramValue1' , 'paramValue2'...
tegelijkertijd voert u meer dan één query uit, zoals één geselecteerde query en een opgeslagen procedure die u moet toevoegen
select * from tableName
EXEC proc_name paramValue1 , paramValue2...


Antwoord 9

De opgeslagen procedures kunnen worden uitgevoerd in de SQL Developer Tool met behulp van de onderstaande syntaxis

BEGIN
procedurenaam();
EINDE;

Als er parameters zijn, moet deze worden doorgegeven.


Antwoord 10

Select * from Table name ..i.e(are you save table name in sql(TEST) k.
Select * from TEST then you will execute your project.

Other episodes