ORA-12705: invalid or unknown NLS parameter value specified (해결)

개발서버에서 잘 동작하는 솔루션 프로그램을 운영서버에 반영하에 테스트시 발생하는 에러

해결책 : 실행 쉘 상단 unset NLS_LANG 추가

굉장히 심플한 해결책이지만 3일정도 삽질했다… 에휴

[AS-IS]
#!/usr/bin/sh
DIR_HOME=”/app/~~~”

[TO-BE]
#!/usr/bin/sh
unset NLS_LANG
DIR_HOME=”/app/~~~”

 

———————————————————————————————————————————
삽질기록

환경 : AIX 5.3
어플리케이션 :  C
DB : ORACLE 10g

(1) 서버단에서 확인한 내용
env | grep LANG
[개발]
LANG=ko_KR
NLS_LANG=American_America.KO16ksc5601

[운영]
LANG=ko_KR
NLS_LANG=American_America.KO16ksc5601

딱히 다른게 없으며 설정도 잘 되어있음

(2) DB단에서 확인한 내용
SELECT * FROM SYS.PROPS$ WHERE NAME = ‘NLS_CHARACTERSET’;

쿼리 결과 모두 동일했지만  NLS_NCHAR_CHARACTERSET 만 달랐다
개발 : UTF8
운영 : AL16UTF16

흠…구글링해도 딱히 답이 안나온다

———————————————————————————————————————————

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias

Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias

문제쿼리
select *
from (
select rownum as rnum, tem.*
from (
select *
from board
<include refid=”search”/>
order by groups desc, step asc
) tem
)
where rnum between #{startRow} and #{endRow}

해결쿼리
select a.*
from (
select @rownum:=@rownum+1 as rnum, tem.*
from (
select *
from board
<include refid=”search”/>
order by groups desc, step asc
) tem, (select @rownum:=0) tnum
) a
where rnum between #{startRow} and #{endRow}

rownum은 oracle db에서 사용한다
mysql에서 rownum을 사용하는 방법
참고사이트 : http://cremazer.blogspot.kr/2013/09/mysql-rownum.html

 

ORA-01940 : cannot drop a user that is currently connected

SELECT SID,SERIAL#,USERNAME,STATUS FROM V$SESSION WHERE SCHEMANAME=’apm’;

조회결과
——————————————–
SID SERIAL# USERNAME STATUS
— ——- ———- ——–
167  2416   APM        INACTIVE

—————————————————–

ALTER SYSTEM KILL SESSION ‘167,2416’ IMMEDIATE;

DROP USER test CASCADE;