오라클 6

[Oracle]NUMBER컬럼 사이즈 변경

Table에 데이터가 들어가 있는 경우 사이즈를 축소하는 것은 안된다. 여기까지는 다 아는 사실.. 그런데.. 에를 들어서 Number(13,3)의 경우 소수점 3자리를 5자리로 늘이려면.. ORA-001440 정도 또는 자리수를 축소할 열은 비어 있어야 합니다. 라는 오류가 발생한다. 축소?? 검새을 해보니.. 13+3의 길이를 잡고 있다가 3을 5로 변경을 하면.. 13+5가 되는 것이 아니라 11+5가 되기 때문에 축소로 본단다.. 그래서 3을 5로 변경을 하려면.. Number(15,5)로 앞자리도 변경을 해주어야 정상적으로 변경이 된다.

컴퓨터일반/DB 2008.06.25

오라클 접속시 ORA-12154, ORA-12638 오류 해결

잘되던 오라클이 갑자기 접속이 안됐다. AD전환 하고 나서 오라클을 지우고 다시 설치하였는데.. 어라.. "ORA-12154 TNS : 서비스 명을 해석할 수 없습니다." 라는 오류가 발생한다. ??? 인터넷 검색 시작.. Oracle 설치 폴더에 Network에 Admin 폴더 안에 있는 sqlnet.ora 파일이 서버와 틀려서 발생하는 오류란다. 열어서 확인해 보니.. AD관련해서 NAMES.DEFAULT_DOMAIN = ***.NET이부분이 추가가 되었다. 앞에 #을 붙여서 주석처리.. 그리고 다시 시도 했더니.. 젠장.. 또 안된다. "ORA-12638: 신용검색에 실패했습니다.".... 란다. 젠장.. 아무리 내 신용도가 바닥이라.. 회사에서 내말을 아무도 안믿기는 하지만.. 쩝.. 이건 너무 ..

컴퓨터일반/DB 2008.01.10

Oracle 삭제 후 재 설치시에 중복된 SID 삭제 방법

1.Windows 계열일 경우 이경우 레지스트리에 등록된 SID를 지우셔야 할겁니다. 제가 찾아본것으로는 아래 레지스트리를 지우시고 다시 DB를 생성하시면 될듯합니다. \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID\SID \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceSID 이두가지를 지우시면 될듯합니다. 여기서 SID는 예전에 설치하셨을때 사용하신 SID겠죠.. 이게 남아있으면 같은 SID로 다시 DB를 만들수 없습니다. 2.Unix계열(리눅스도 포함) 보통 SID는 oratab이란 파일에 저장되는데 이파일은 시스템마다 조금씩 틀리지만 /etc, /var/opt/oracle 밑에 존재합니다. 그냥 이..

컴퓨터일반/DB 2008.01.08

NOT IN과 NOT EXISTS..

테스트 환경 : Oracle 9i 아래와 같은 쿼리가 있다. SELECT * FROM TMP1 WHERE PAT_NO NOT IN (SELECT PAT_NO FROM TMP2) ; 결과가 안나온다. 분명히 TMP1에는 있고 TMP2에는 없는 PAT_NO가 있는데... 쿼리를 바꿔보았다. SELECT A.* FROM TMP1 A WHERE NOT EXISTS (SELECT 1 FROM TMP2 WHERE PAT_NO = A.PAT_NO) ; PAT_NO가 NULL인것 까지 몽땅 나온다. 췟.. SELECT A.* FROM TMP1 A WHERE NOT EXISTS (SELECT 1 FROM TMP2 WHERE PAT_NO = A.PAT_NO) AND A.PAT_NO IS NOT NULL ; 원하는 결과가 ..

컴퓨터일반/DB 2007.01.09

MS-SQL2000에서의 Update 문

오라클에서는 Update 할때.. UPDATE INSA1 A SET (A.JUMIN_NO1,A.EMP_CNAME) =(SELECT JUMON_NO1,EMP_CNAME FROM INSA2 WHERE EMP_NO = A.EMP_NO) WHERE A.EMP_NO = '000000' 이런 쿼리가 먹었었는데... SQL은 안먹는듯.. 다음과 같이 수정.. UPDATE INSA1 SET JUMIN_NO1 = A.JUMIN_NO1, EMP_CNAME = A.EMP_CNAME FROM INSA2 A INNER JOIN INSA1 B ON A.EMP_NO = B.EMP_NO WHERE A.EMP_NO = '000000' 간만에 SQL만지려니.. 기억이 가물... 가물...

컴퓨터일반/DB 2006.10.12