2017-11-08 12 views
1

이것은 매우 기본적인 문제인 것처럼 보일 수 있지만 이에 대한 해결책을 찾을 수는 없습니다. 나는 데이터베이스에 대한 경험이 거의 없다는 것을 인정해야한다. 나는 THIS 질문을 보았지만 그다지 도움이되지 못했습니다.VBScript_Get xml 데이터가 Oracle DB에 저장 됨 (DataType - CLOB)

문제 : 데이터베이스에서 유형 CLOB의 데이터를 가져 오기 위해 내 쿼리를 수정할 때마다

, 내가 오류를 "지정되지 않은 오류"를 얻을. 아래의 코드에서는 쿼리 strQuery = "select CDATA from WR2_USR.router_xml_data where EVENT_ID= '987787454'"을 작성했습니다. CDATA (CLOB 데이터 유형)의 CDATA에는 나중에 사용하기 위해 가져오고 변수에 저장해야하는 Long XML이 포함되어 있습니다. 그것을 달성 할 수있는 방법이 있습니까?

코드 :

Option Explicit 
Dim objCon, objRs, strCon, strQuery, i, strServer, strUid, strPwd 
set objCon = CreateObject("adodb.connection") 
set objRs = CreateObject("adodb.recordset") 
strServer = ""  'Contains the correct Server information 
strUid = ""   'Contains the user name 
strPwd = ""   'Contains the password 
strCon = "Driver={Microsoft ODBC for Oracle};SERVER="&strServer&";uid="&strUid&";pwd="&strPwd &";" 
strQuery = "select CDATA from WR2_USR.router_xml_data where EVENT_ID= '987787454'" 
objCon.open strCon 
if objCon.state=1 then 
    objRs.open strQuery, objCon   '<--- GETTING ERROR HERE 
    while (not objRs.eof) 
     msgbox objRs.fields.count 
     for i=0 to objRs.fields.count-1 step 1 
      msgbox cstr(objRs.fields.item(i).value) 
     next 
     objRs.movenext 
    Wend 
end if 

set objCon = Nothing 
set objRs = Nothing 

오류 :

enter image description here

열 세부 :

enter image description here

참고 : 다른 열의 데이터 (CLOB 데이터 유형 아님)를 가져 오도록 내 쿼리를 변경하면 코드가 제대로 실행됩니다.

Microsoft에서 Oracle 용

답변

2

ODBC 드라이버는 연령대에 deprecated입니다 :

오라클 7.3을 완벽하게 지원한다; Oracle8은 제한적인 지원을 제공합니다. Oracle 용 ODBC 드라이버 유니 코드 데이터 유형, BLOB, CLOB 등을 지원하지 않으며 오라클의 새 관계형 객체 모델도 지원하지 않습니다.

오라클의 ODBC 드라이버 또는 OLE-DB 공급자를 사용, 당신은 Oracle Data Access Components (ODAC) for Windows Downloads

에서 다운로드 할 수있는 그런 다음 연결 문자열은 다음과 유사합니다 :

' ODBC Driver from Oracle 
strCon = "Driver={Oracle in OraClient11g_home1};DBQ=" & strServer & ";Pwd=" & strPwd & ";Uid=" & strUid  

' OLE DB Provider from Oracle 
strCon = "Provider=OraOLEDB.Oracle;Data Source=" & strServer & ";Password=" & strPwd & ";User ID=" & strUid  
+0

가 대단히 감사합니다. 두 번째 방법은 나를 위해 일했습니다. :) – Gurman