Otrzymałem konto użytkownika w bazie danych SQL Server, które ma uprawnienia tylko do wykonywania procedury składowanej. Dodałem plik jar JTDS SQL Server JDBC do programu SQL Developer i dodałem go jako sterownik JDBC innej firmy. Mogę pomyślnie zalogować się do bazy danych SQL Server. Otrzymałem następującą składnię do uruchomienia procedury:
EXEC proc_name 'paramValue1' 'paramValue2'
Kiedy uruchamiam to jako instrukcję lub skrypt, pojawia się ten błąd:
Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Próbowałem zawinąć instrukcję BEGIN/END
, ale otrzymałem ten sam błąd. Czy można wywołać procedurę z poziomu SQL Developer? Jeśli tak, jakiej składni potrzebuję?
Brakuje
,
źródło
EXEC proc_name
i zobaczyć, czy prosi cię o drugi parametr ... to przynajmniej wiesz, że twój sytax jest poprawny ... jeśli nie działa, oznacza to, że prawdopodobnie nie masz poprawnie zapisanej nazwy proc ... spróbuj pełnej kwalifikowanej nazwy ..Musisz to zrobić:
źródło
źródło
Jeśli celem procedury składowanej jest wykonanie operacji
INSERT
na tabeli, która ma zadeklarowane pole Identity, to pole w tym scenariuszu@paramValue1
powinno zostać zadeklarowane i po prostu przekazać wartość 0, ponieważ będzie to automatycznie zwiększane.źródło
Wiem, że to stary. Ale to może pomóc innym.
Dodałem funkcję wywołującą SP między BEGIN / END. Oto działający skrypt.
źródło
Jeśli chcesz po prostu wykonać procedurę składowaną
proc_name 'paramValue1' , 'paramValue2'...
w tym samym czasie, gdy wykonujesz więcej niż jedno zapytanie, takie jak jedno zapytanie wybierające i procedura składowana, musisz dodaćselect * from tableName EXEC proc_name paramValue1 , paramValue2...
źródło
Procedury składowane można uruchomić w narzędziu deweloperskim sql przy użyciu poniższej składni
BEGIN nazwa procedury (); KONIEC;
Jeśli są jakieś parametry, należy je przekazać.
źródło
źródło