Para el gigante Oracle, el uso de Asp es realmente complicado. Especialmente cuando se trata de devolver un conjunto de resultados (Recordset), muchas personas tienen dificultades. Después de explorar y practicar, escribí mi propia solución a continuación:
ilustrar:
La versión de mi cliente Oracle es Oracle 9i. Al instalar el cliente, no puede usar la instalación predeterminada. Debe personalizarlo y luego seleccionar todo el contenido relacionado con OLEDB e instalarlo. Proveedor a continuación.
Copie el código de código de la siguiente manera:
<%@Language=VBSCRIPT Página de códigos=936 LCID=2052%>
<%Opción explícita%>
<!-- #include file=../adovbs.inc -->
<%
cnOra tenue
Función Connect2OracleServer
ConStr tenue
conStr = Proveedor=MSDAORA.Oracle;Fuente de datos=xx;Identificación de usuario=?;Contraseña=?
Establecer cnOra = Server.CreateObject(ADODB.Connection)
cnOra.CursorLocation = adUseClient '=3
En caso de error Continuar siguiente
cnOra.Open conStr
Connect2OracleServer = (Número de error = 0)
Función final
Subdesconexión de OracleServer
Si No cnOra es Nada Entonces
Si cnOra.State = 1 Entonces
cnOra.Cerrar
Terminar si
Establecer cnOra = Nada
Terminar si
Subtítulo final
Sub eco (cadena)
Respuesta.Escribir(cadena)
Subtítulo final
SubsalidaResultado
Dim cmdOra
atenuados
Establecer cmdOra = Server.CreateObject(ADODB.Command)
Con cmdOra
.CommandType = adCmdText '=1
.CommandText = {llamar a PKG_TEST.GetItem(?,?)}
.Parameters.Append cmdOra.CreateParameter(p1, adNumeric, adParamInput, 10, 1)
.Parameters.Append cmdOra.CreateParameter(p2, adVarChar, adParamInput, 10, xx)
.ActiveConnection = cnOra
Establecer rs = cmdOra.Execute
Si no es rs.Eof entonces
Mientras no rs.Eof
Eco rs(0)
Eco--
Eco rs(1)
Eco <br>
rs.MoverSiguiente
Encaminarse a
rs.Cerrar
Terminar si
Configurar=Nada
Establecer cmdOra = Nada
Terminar con
Desconectarse de OracleServer
Subtítulo final
Si Connect2OracleServer entonces
Resultado de salida
Demás
Respuesta.Escribir(Err.Descripción)
Terminar si
%>
El siguiente es el script SQL de Oracle.
----------------------------------Secuencia de comandos SQL---------- ---- ----------------------
--Construir paquete---------------------------------
Copie el código de código de la siguiente manera:
Crear o reemplazar el paquete PKG_TEST
ES
TIPO rfcTest ES EL CURSOR DE REF;
PROCEDIMIENTO OBTENER ARTÍCULO
(p1 EN NÚMERO,
p2 EN VARCHAR2,
p3 SALIDA rfcTest
);
FINAL; - Especificación del paquete PKG_TEST;
-------------------------------------------------- -
--Construcción del cuerpo del paquete---------------------------------
Crear o reemplazar el cuerpo del paquete PKG_TEST
ES
PROCEDIMIENTO OBTENER ARTÍCULO
(p1 EN NÚMERO,
p2 EN VARCHAR2,
p3 SALIDA rfcTest
)
ES
COMENZAR
ABRIR p3 PARA
SELECCIONE * DESDE nombre de tabla DONDE id = p1 Y nombre = p2 Y número de fila < 10;
EXCEPCIÓN
CUANDO OTROS ENTONCES
NULO ;
FIN;
FINAL; - Cuerpo del paquete PKG_TEST