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

Этот пример показывает, как вызвать хранимую процедуру, которая возвращает данные с помощью функции 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 или любых non-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)

Смотрите также

| |

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