2008년 9월 30일 화요일

[에러와 해결] 데이터 정의에서는 바인드 변수를 사용할 수 없습니다

다음과 같은 오류가 발생하였다.

java.sql.SQLException: ORA-01027: 데이터 정의에서는 바인드 변수를 사용할 수 없습니다

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
 at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
 at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)


해당 쿼리는 CREATE TABLE AS SELECT ...

테이블을 생성하는데 PreparedStatement를 사용했기 때문에 발생한 오류이다.

일반 Statement를 사용하여 오류 해결.

2008년 9월 4일 목요일

영문보다 한글이 먼저 나오게 정렬

정렬하면 한글보다 영문이 먼저 나온다.

예) SELECT * FROM tblMember ORDER BY MemberName

한글이 먼저 나오게 하려면?

다음과 같이 한다.

1. oracle

  SELECT * FROM tblMember ORDER BY CONVERT(MemberName, 'ISO2022-KR')

2008년 8월 12일 화요일

윈도우 부팅시 톰캣 자동실행시키기

톰캣 ROOT/bin에 로 이동 다음과 같이 실행하여 윈도우 서비스로 등록한다.

service.bat install

명령창에서 services.msc

또는 제어판의 관리도구 > 서비스를 실행한다.

Apache Tomcat 항목에서 마우스 우클릭하여 속성 선택

시작유형을 자동으로 바꾸고 저장한다.

2008년 4월 26일 토요일

[에러와 해결] 소켓에서 읽을 데이터가 없습니다.

톰캣에서 오라클 접속중 다음과 같은 에러가 발생하였다.

java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1123)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
        at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:752)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)

오라클에서 막고 있는 것이므로,

DB관리자에게 접속할 수 있도록 설정해달라고 요청해서 해결..

2008년 4월 24일 목요일

[에러와 해결] Illegal constant pool type

다음과 같은 오류가 발생

javax.servlet.ServletException: Illegal constant pool type
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)


원인 : jsp에서 사용하는 class 파일이 손상되었다.

나의 경우에는 FTP로 업로드할 때 전송타입을 잘못해서 생긴 문제였다.

2008년 4월 4일 금요일

ASP 엑셀파일 생성시 오류와 해결방법

ASP에서 엑셀파일 생성시 다음과 같은 오류가 발생할 수 있다.

  Microsoft VBScript 런타임 오류 (0x800A0046)
  사용 권한이 없습니다.: 'CreateObject'

  Microsoft Office Excel (0x800A03EC)
  사용 가능한 메모리나 디스크 공간이 부족하므로 더 이상 문서를 열거나 저장할 수 없습니다.


==> 해결방법(Windows XP기준)

[관리도구 -> 구성요소 서비스 -> 내 컴퓨터 -> DCOM 구성]으로 간다

Microsoft Excel Application의 속성 대화상자를 연다.

1. 보안 탭에서 설정

[보안] 탭에서 [시작 및 활성화 권한]을 [사용자 지정]으로 한 후, [편집]을 누른다.

[인터넷 게스트 계정]을 추가하여, 로컬 시작, 로컬 활성화를 허용한다.

** 참고 **
 인터넷 게스트 계정을 추가하는 방법은 다음과 같다.

 [추가] 클릭, [고급] 클릭, [지금찾기]클릭한다.
 
 목록 중에서 [IUSR_컴퓨터이름]으로 되어 있는 항목을 클릭하고 [확인] 클릭한다.
**********

[액세스 권한] 도 마찬가지로 [사용자 지정]으로 한 후, [편집]을 눌러 [인터넷 게스트 계정]을 추가한 후 로컬 액세스를 허용한다.


2. ID에서 설정

대화형 사용자를 선택한다.


-- 끝

2008년 3월 5일 수요일

오라클 db 링크

1. 생성

create database link 링크이름
connect to 아이디 identified by 비번 using 'TNS이름';


2. 확인

select * from all_db_links;


3. 삭제

drop database link 링크이름;