Ich habe ein Benutzerkonto für eine SQL Server-Datenbank erhalten, die nur zum Ausführen einer gespeicherten Prozedur berechtigt ist. Ich habe die JTDS SQL Server JDBC-JAR-Datei zu SQL Developer hinzugefügt und als JDBC-Treiber eines Drittanbieters hinzugefügt. Ich kann mich erfolgreich bei der SQL Server-Datenbank anmelden. Ich erhielt diese Syntax zum Ausführen der Prozedur:
EXEC proc_name 'paramValue1' 'paramValue2'
Wenn ich dies entweder als Anweisung oder als Skript ausführe, wird folgende Fehlermeldung angezeigt:
Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Ich habe versucht, die Anweisung einzuschließen BEGIN/END
, erhalte aber den gleichen Fehler. Ist es möglich, die Prozedur von SQL Developer aus aufzurufen? Wenn ja, welche Syntax muss ich verwenden?
Du fehlst
,
quelle
EXEC proc_name
und sehen, ob Sie danach gefragt werden zweiter Parameter ... dann wissen Sie zumindest, dass Ihre Systemsteuer richtig ist. Wenn dies nicht funktioniert, bedeutet dies, dass Sie wahrscheinlich keinen richtigen gespeicherten Prozessnamen haben. Versuchen Sie es mit einem qualifizierten Namen.Sie müssen dies tun:
quelle
quelle
Wenn das Ziel der gespeicherten Prozedur darin besteht,
INSERT
eine Tabelle mit einem deklarierten Identitätsfeld auszuführen@paramValue1
, sollte das Feld in diesem Szenario deklariert werden und nur den Wert 0 übergeben, da es automatisch inkrementiert wird.quelle
Ich weiß, das ist der alte. Aber das kann anderen helfen.
Ich habe die SP-Aufruffunktion zwischen BEGIN / END hinzugefügt. Hier ist ein funktionierendes Skript.
quelle
Wenn Sie Ihre gespeicherte Prozedur nur
proc_name 'paramValue1' , 'paramValue2'...
gleichzeitig ausführen müssen, führen Sie mehr als eine Abfrage aus, z. B. eine Auswahlabfrage und eine gespeicherte Prozedur, die Sie hinzufügen müssenselect * from tableName EXEC proc_name paramValue1 , paramValue2...
quelle
Die gespeicherten Prozeduren können im SQL Developer Tool mit der folgenden Syntax ausgeführt werden
BEGIN prozedurname (); ENDE;
Wenn es irgendwelche Parameter gibt, muss es übergeben werden.
quelle
quelle