거대한 Oracle의 경우 Asp는 사용하기에 정말 확장되었습니다. 특히 결과 집합(Recordset)을 반환하는 경우 많은 사람들이 어려움을 겪습니다. 탐색과 연습을 거쳐 아래와 같은 나만의 솔루션을 작성했습니다.
설명하다:
제가 사용하는 Oracle 클라이언트 버전은 oracle 9i 입니다. 클라이언트 설치 시 기본 설치를 사용할 수 없으므로 반드시 커스터마이징 후 OLEDB 관련 내용을 모두 선택하여 설치하셔야 합니다. 아래 제공업체로 이동하세요.
다음과 같이 코드 코드를 복사합니다.
<%@Language=VBSCRIPT 코드페이지=936 LCID=2052%>
<%옵션 명시적%>
<!-- #include 파일=../adovbs.inc -->
<%
딤씨노라
기능 Connect2OracleServer
밝기 조절
conStr = 공급자=MSDAORA.Oracle;데이터 원본=xx;사용자 ID=?;암호=?
cnOra = Server.CreateObject(ADODB.Connection) 설정
cnOra.CursorLocation = adUseClient '=3
오류 발생 시 다음 재개
cnOra.Open 구성
Connect2OracleServer = (Err.Number = 0)
기능 종료
하위 DisconnectFromOracleServer
그렇지 않다면 cnOra는 아무것도 아니다.
cnOra.State = 1인 경우
cnOra.닫기
종료 조건
cnOra = 아무것도 설정하지 않음
종료 조건
서브 끝
서브 에코(str)
응답.쓰기(str)
서브 끝
하위 출력결과
희미한 cmdOra
딤머
cmdOra = Server.CreateObject(ADODB.Command) 설정
cmdOra 사용
.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가 아닌 동안
에코RS(0)
에코 --
에코RS(1)
에코 <br>
rs.이동다음
향하게 하다
RS.닫기
종료 조건
설정자=아무것도 없음
cmdOra = 아무것도 설정하지 않음
끝
OracleServer에서 연결 끊기
서브 끝
Connect2OracleServer이면
출력결과
또 다른
응답.쓰기(Err.설명)
종료 조건
%>
다음은 Oracle의 SQL 스크립트입니다.
---------------------SQL 스크립트--------- ---- ---------
--패키지 빌드------------------
다음과 같이 코드 코드를 복사합니다.
패키지 PKG_TEST 생성 또는 교체
이다
rfcTest 유형은 참조 커서입니다.
프로시저 GETITEM
( p1 IN NUMBER,
VARCHAR2의 p2,
p3 출력 rfc테스트
);
END -- 패키지 사양 PKG_TEST
------------------------------------- -
--빌딩 패키지 본체---------------------------------
패키지 본문 PKG_TEST 생성 또는 교체
이다
프로시저 GETITEM
( p1 IN NUMBER,
VARCHAR2의 p2,
p3 출력 rfc테스트
)
이다
시작하다
다음을 위해 p3 열기
SELECT * FROM tablename WHERE id = p1 AND name=p2 AND rownum < 10;
예외
다른 사람들이 그때
NULL ;
끝;
END -- 패키지 본문 PKG_TEST