Вызов хранимой процедуры, которая возвращает данные

В этом примере показано, как вызвать хранимую процедуру, которая возвращает данные с помощью fetch функция. Используйте интерфейс JDBC для подключения к Microsoft® SQL Server® база данных, вызов хранимой процедуры и возврат данных. В данном примере база данных Microsoft SQL Server содержит хранимую процедуру getSupplierInfo. Эта хранимая процедура возвращает информацию о поставщиках для поставщиков данного города. Этот код определяет процедуру.

CREATE PROCEDURE dbo.getSupplierInfo
	(@cityName varchar(20))
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON

    SELECT * FROM dbo.suppliers WHERE City = @cityName
END

Для Microsoft SQL Server оператора 'SET NOCOUNT ON' подавляет результаты INSERT, UPDATE, или любой не- SELECT операторы, которые могут быть перед заключительным SELECT запрос, чтобы можно было импортировать результаты SELECT запрос.

Используйте fetch функция, когда сохраненная процедура возвращает один или несколько результирующих наборов. Для процедур, которые возвращают выходные параметры, используйте runstoredprocedure.

Создание подключения к базе данных

Используя интерфейс JDBC, подключитесь к базе данных Microsoft SQL Server под названием 'test_db' с именем пользователя и паролем по номеру порта 1234. Этот пример предполагает, что ваш сервер базы данных находится на машине servername.

conn = database('test_db','username','pwd', ...
    'Vendor','Microsoft SQL Server', ...
    'Server','servername','PortNumber',1234);

Вызов хранимой процедуры

Вызовите хранимую процедуру, getSupplierInfo, и отобразить информацию о поставщике для New York город используя fetch функция и подключение к базе данных. results содержит информацию о поставщике.

sqlquery = '{call getSupplierInfo(''New York'')}';
results = fetch(conn,sqlquery)
ans =

  3×5 table

    SupplierNumber       SupplierName          City           Country          FaxNumber   
    ______________    __________________    __________    _______________    ______________

    1001              'Wonder Products'     'New York'    'United States'    '212 435 1617'
    1006              'ACME Toy Company'    'New York'    'United States'    '212 435 1618'
    1012              'Aunt Jemimas'        'New York'    'USA'              '14678923104' 

Закрытие подключения к базе данных

close(conn)

См. также

| |

Внешние веб-сайты