반응형
ADODB 및 Oracle로 "xas(...)"를 수행할 수 없는 이유는 무엇입니까?
저는 ADODB와 Oracle을 통해 with 절이 있는 SQL 쿼리를 실행하지 못합니다.
즉, 다음과 같은 토막글이 작동합니다.
Dim cn As ADODB.connection
Set cn = ....
Dim rs As ADODB.recordSet
Set rs = New ADODB.Recordset
rs.Open "select 'foo' x from dual", cn
Do While Not rs.eof
...
rs.MoveNext
Loop
그러나 다음이 작동하지 않습니다. Run-Time 오류 3704가 발생합니다. 개체가 닫혔을 때는 작업이 허용되지 않습니다.
Dim cn As ADODB.connection
Set cn = ....
Dim rs As ADODB.recordSet
Set rs = New ADODB.Recordset
rs.Open "with w as (select 'foo' x from dual) select x from w", cn
Do While Not rs.eof
...
rs.MoveNext
Loop
분명히, 이것은 더 정교한 쿼리로 구성된 실제 문제의 축소된 시연입니다.
제가 보기에 ADODB는 쿼리를 오라클 인스턴스로 전달하기 전에 구문 분석을 수행하고 with 절을 이해하지 못하는 것 같습니다.어쨌든, 이에 대한 어떤 도움이라도 대단히 감사드립니다.
좋아요, 정말로 ADODB는 쿼리문이 실제로 시작되기를 기대하는 것 같습니다.select
. 따라서 문제에 대한 해결책은 문장을 a에 포함하는 것일 수 있습니다.select * from ( .... )
다음과 같습니다.
Dim sql As String
sql = "with w as (select 'foo' x from dual) select x from w"
' enclose the statement:
sql = "select * from (" & sql & ")"
rs.Open sql, cn
위의 방법은 저에게 효과가 없었습니다.
WITH 키워드 앞에 ";"를 추가하면 문제가 해결됩니다.
Dim sql As String sql = ";with(듀얼에서 'foo' x 선택) w에서 x 선택"
rs.Open sql, cn
언급URL : https://stackoverflow.com/questions/2316886/why-cant-i-do-a-with-x-as-with-adodb-and-oracle
반응형
'source' 카테고리의 다른 글
AngularJS 및 그 이상의 웹소켓 (0) | 2023.10.24 |
---|---|
Python에서 PyObject란 무엇입니까? (0) | 2023.10.24 |
Angular JS에서 모든 $http 요청이 완료될 때까지 기다립니다. (0) | 2023.10.24 |
javascript/jquery로 선행 0 제거/잘림 (0) | 2023.10.24 |
텍스트 영역에서 값 가져오기 (0) | 2023.10.24 |