Para o gigante Oracle, o Asp é realmente fácil de usar. Principalmente quando se trata de retornar um conjunto de resultados (Recordset), isso faz com que muitas pessoas tenham dificuldades. Após exploração e prática, escrevi minha própria solução abaixo:
ilustrar:
A versão do meu cliente Oracle é Oracle 9i. Ao instalar o cliente, você não pode usar a instalação padrão. Você deve personalizá-lo e, em seguida, selecionar todo o conteúdo relacionado ao OLEDB e instalá-lo. vá para o provedor abaixo.
Copie o código do código da seguinte forma:
<%@Language=VBSCRIPT CodePage=936 LCID=2052%>
<%Opção Explícita%>
<!-- #include file=../adovbs.inc -->
<%
Dim cnOra
Função Connect2OracleServer
Dim conStr
conStr = Provider=MSDAORA.Oracle;Fonte de dados=xx;ID do usuário=?;Senha=?
Definir cnOra = Server.CreateObject(ADODB.Connection)
cnOra.CursorLocation = adUseClient '=3
Em caso de erro, retomar o próximo
cnOra.Open conStr
Connect2OracleServer = (Err.Number = 0)
Função final
Sub DesconectarFromOracleServer
Se não, cnOra não é nada, então
Se cnOra.State = 1 Então
cnOra.Fechar
Terminar se
Definir cnOra = Nada
Terminar se
Finalizar sub
Subeco(str)
Resposta.Write(str)
Finalizar sub
Sub OutputResult
Dim cmdOra
Escurece
Definir cmdOra = Server.CreateObject(ADODB.Command)
Com cmdOra
.CommandType = adCmdText '=1
.CommandText = {chamar PKG_TEST.GetItem(?,?)}
.Parameters.Append cmdOra.CreateParameter(p1, adNumeric, adParamInput, 10, 1)
.Parameters.Append cmdOra.CreateParameter(p2, adVarChar, adParamInput, 10, xx)
.ActiveConnection = cnOra
Definir rs = cmdOra.Execute
Se não rs.Eof então
Embora não seja rs.Eof
Eco rs(0)
Eco -
Eco rs(1)
Eco <br>
rs.MoveNext
Wend
rs.Fechar
Terminar se
Setrs=Nada
Definir cmdOra = Nada
Terminar com
Desconectar do OracleServer
Finalizar sub
Se Connect2OracleServer então
ResultadoResultado
Outro
Response.Write(Err.Descrição)
Terminar se
%>
A seguir está o script sql da Oracle
----------------------------------Script SQL---------- ---- ----------------------
--Construir pacote---------------------------------
Copie o código do código da seguinte forma:
Criar ou substituir pacote PKG_TEST
É
TIPO rfcTest É REF CURSOR;
PROCEDIMENTO OBTER ITEM
(p1 EM NÚMERO,
p2 EM VARCHAR2,
p3 OUT rfcTest
);
FIM – Especificação do pacote PKG_TEST;
-------------------------------------------------- -
--Construindo o corpo do pacote----------------------------------
Criar ou substituir o corpo do pacote PKG_TEST
É
PROCEDIMENTO OBTER ITEM
( p1 EM NÚMERO,
p2 EM VARCHAR2,
p3 OUT rfcTest
)
É
COMEÇAR
ABRIR p3 PARA
SELECT * FROM nomedatabela WHERE id = p1 AND nome=p2 AND rownum < 10;
EXCEÇÃO
QUANDO OUTROS ENTÃO
NULO ;
FIM;
FIM – Corpo do pacote PKG_TEST