2015년 06월 09일 20시 15분 00초, 조회수 : 1041
| 제목 : 오라클 패키지 실행시 ORA-00900 에러
| SEQ : 163068
| 글쓴이 : kmshsn
| 작성 포맷 : TEXT 모드, 자동 줄바꿈 사용 --- test.asp --------
<!--METADATA TYPE= "typelib" NAME= "ADODB Type Library" FILE="C:Program FilesCommon
FilesSYSTEMADOmsado15.dll" -->
<%
Dim strConnect, StrSQL
Set objConn = CreateObject("ADODB.Connection")
strConnect="Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security Info=True;User ID=XX;Data
Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.1)(PORT =
1521)))(CONNECT_DATA = (SID = XXX1)))"
objConn.open strConnect
StrSQL="execute kmsdba.pkg_list.send_jumsu("
StrSQL=StrSQL & "'xxxx'"
StrSQL=StrSQL & ",'xxx'"
StrSQL=StrSQL & ",null"
StrSQL=StrSQL & ",null"
StrSQL=StrSQL & ",'xxx'"
StrSQL=StrSQL & ",'aaa'"
StrSQL=StrSQL & ",01'"
StrSQL=StrSQL & ",01'"
StrSQL=StrSQL & ",'system'"
StrSQL=StrSQL & ",'system'"
StrSQL=StrSQL & ",'system');"
'StrSQL="SELECT * FROM MAN"
objConn.Execute(StrSQL)
objConn.Close
Set objConn = Nothing
%>
------------------------------------------------
익스플로러 //192.168.1.5/test.asp 하면
OraOLEDB 오류 '80040e14'
ORA-00900: SQL 문이 부적합합니다
/test.asp, 줄 26
이렇게 에러납니다.
StrSQL 부분(execute ....)을 토드에 붙이면 에러없이 잘됩니다.
또한
'StrSQL="SELECT * FROM MAN"
이부분 주석처리를 지우면 에러 없습니다.
이것은 테스트해보려고 한것입니다.
이유가 뭔지 도무지 모르겠습니다.
도와주세요~~~
|
|
| ztardia 2015-06-09(20:25)
| provider=MSDAORA.1;
|
| ztardia 2015-06-09(20:28)
| 아이고 설명이 빠져부렷네요 제가 전에 asp + 오라클로 뭐하나 했었는데 테스트 서버가 윈도우 32비트였습니다. 근데 실버서가 64비트로 옮겨지면서
프로시저들이 에러가 나더라구요 그래서 디비 접근 하는 부분을 하나 더 만들었습니다. 위에껄로요 그리고 프로시저는 다 저걸로 호출하니깐 잘되었습니다.~~~~ 도움이 되길 바랍니다. 후딱 마무리하고 퇴근하시길
|
| sequel2 2015-06-10(00:04)
| 위 ztardia 님 경우가 아니면 이렇게 해보세요. 첫 쿼리문 마지막에 세미콜론(;)을 지워보세 요.
|
| sequel2 2015-06-10(00:09)
| 01 : StrSQL="execute kmsdba.pkg_list.send_jumsu(" 02 : StrSQL=StrSQL & "'xxxx'" 03 : StrSQL=StrSQL & ",'xxx'" 04 : StrSQL=StrSQL & ",null" 05 : StrSQL=StrSQL & ",null" 06 : StrSQL=StrSQL & ",'xxx'" 07 : StrSQL=StrSQL & ",'aaa'" 08 : StrSQL=StrSQL & ",01'" 09 : StrSQL=StrSQL & ",01'" 10 : StrSQL=StrSQL & ",'system'" 11 : StrSQL=StrSQL & ",'system'" 12 :
StrSQL=StrSQL & ",'system');"또 한가지. 줄 번호가 위와 같다고 하면 8,9 줄 값의 홑따옴표 확인해 보세요.
|
| kmshsn 2015-06-10(08:11)
| sequal2님 8,9줄은 제가 여기 올리면서 빠트렸네요. ztardia님 provider 바꿔보겠습니다.
|
| kmshsn 2015-06-10(08:15)
| ztardia님 provider 바꿔보았습니다만 똑같은 에러입니다. 흑흑 windows server 2012 R2입니다.
|
| kmshsn 2015-06-10(08:21)
| 마지막 세미콜론도 지워서 해봤지만 같은 에러입니다.
|
| ztardia 2015-06-10(13:01)
| 흐음....아쉽군요 그렇다면 구글링을 좀더 하셔서 이것저것 해보셔야겠네요 ㅠ.ㅠ
화이팅 입니다.
|
| kmshsn 2015-06-10(15:16)
| 해결했습니다. 실행구문이 왜 이런지는 모르겠습니다만 StrSQL="BEGIN kmsdba.pkg_list.send_jumsu(" StrSQL=StrSQL & "'xxxx'" StrSQL=StrSQL & ",'xxx'" StrSQL=StrSQL & ",null" StrSQL=StrSQL & ",null" StrSQL=StrSQL & ",'xxx'" StrSQL=StrSQL & ",'aaa'" StrSQL=StrSQL & ",'01'" StrSQL=StrSQL & ",'01'" StrSQL=StrSQL & ",'system'" StrSQL=StrSQL & ",'system'" StrSQL=StrSQL &
",'system');" StrSQL=StrSQL & " END;"EXECUTE를 빼고 BEGIN 과 END 로 묶으니 됩니다. 도와주셔서 너무 감사합니다.
|
|
제목
| 작성자
| 날짜
| 조회
|
| 오라클 패키지 실행시 ORA-00900 에러 (9)
| kmshsn
| 2015-06-09
| 1041
|
|