Для гигантского Oracle Asp действительно удобен в использовании. Особенно когда дело доходит до возврата набора результатов (Recordset), у многих людей возникают трудности. После исследования и практики я написал свое собственное решение ниже:
проиллюстрировать:
Версия моего клиента Oracle — oracle 9i. При установке клиента вы не можете использовать установку по умолчанию. Необходимо настроить ее, а затем выбрать все содержимое, связанное с OLEDB, и установить его. В противном случае вы не найдете его при переходе на сайт. Провайдер ниже.
Скопируйте код кода следующим образом:
<%@Language=Кодовая страница VBSCRIPT=936 LCID=2052%>
<%Явный параметр%>
<!-- #include file=../adovbs.inc -->
<%
Дим cnOra
Функция Connect2OracleServer
Тусклый конСтр
conStr = Provider=MSDAORA.Oracle;Источник данных=xx;Идентификатор пользователя=?;Пароль=?
Установите cnOra = Server.CreateObject(ADODB.Connection)
cnOra.CursorLocation = adUseClient '=3
При ошибке Возобновить Далее
cnOra.Open conStr
Connect2OracleServer = (Номер ошибки = 0)
Конечная функция
Sub DisconnectFromOracleServer
Если нет, то это ничто.
Если cnOra.State = 1 Тогда
cnOra.Close
Конец, если
Установить cnOra = Ничего
Конец, если
Конец субтитра
Суб-эхо (ул.)
Response.Write(строка)
Конец субтитра
Подвыходной результат
Тусклый cmdOrа
Димры
Установите cmdOra = Server.CreateObject(ADODB.Command)
С помощью cmdOrа
.CommandType = adCmdText '=1
.CommandText = {вызов PKG_TEST.GetItem(?,?)}
.Parameters.Append cmdOra.CreateParameter(p1, adNumeric, adParamInput, 10, 1)
.Parameters.Append cmdOra.CreateParameter(p2, adVarChar, adParamInput, 10, xx)
.ActiveConnection = cnOra
Установите rs = cmdOra.Execute
Если не rs.Eof Тогда
Пока не RS.Eof
Эхо рс(0)
Эхо --
Эхо рс(1)
Эхо <br>
rs.MoveNext
Венд
rs.Close
Конец, если
Setrs=Ничего
Установить cmdOra = Ничего
Конец с
Отключиться от OracleServer
Конец субтитра
Если Connect2OracleServer Тогда
Выходной результат
Еще
Ответ.Запись(Ошибка.Описание)
Конец, если
%>
Ниже приведен sql-скрипт Oracle.
----------------------------------SQL-скрипт---------- ---- ----------------------
--Пакет сборки---------------------------------
Скопируйте код кода следующим образом:
Создать или заменить пакет PKG_TEST
ЯВЛЯЕТСЯ
ТИП rfcTest — REF CURSOR;
ПРОЦЕДУРА ПОЛУЧЕНИЯ ТЕМА
( p1 В ЧИСЛЕ,
p2 В VARCHAR2,
p3 ВЫХОД rfcTest
);
КОНЕЦ -- Спецификация пакета PKG_TEST;
-------------------------------------------------- -
--Создание тела пакета----------------------------------
Создать или заменить тело пакета PKG_TEST
ЯВЛЯЕТСЯ
ПРОЦЕДУРА ПОЛУЧЕНИЯ ТЕМА
( p1 В ЧИСЛЕ,
p2 В VARCHAR2,
p3 ВЫХОД rfcTest
)
ЯВЛЯЕТСЯ
НАЧИНАТЬ
ОТКРЫТЬ p3 ДЛЯ
SELECT * FROM tablename WHERE id = p1 AND name=p2 AND rownum < 10;
ИСКЛЮЧЕНИЕ
КОГДА ДРУГИЕ, ТОГДА
НУЛЕВОЙ ;
КОНЕЦ;
КОНЕЦ -- Тело пакета PKG_TEST;