728x90
반응형
728x90
반응형

ORA-01460 요구된 변환은 실행될 수 없습니다. 

(unimplemented or unreasonable conversion requested)

ORA-01460 오류는 clob에 32킬로 바이트 이상의 데이터를 입력하고자 할 때 또는
jdbc 드라이버에 따라 발생할 수 있다고 합니다.

저는 jdbc 드라이버에 문제였습니다.

jdk와 오라클 버전에 따라 맞는 jdbc드라이버를 사용해주지 않아서 발생하였습니다..

사용하는 서비스의 jdk버전은 1.5, 오라클은 11g를 사용하고 있습니다.

was내 lib를 확인해보니 classes12_9i.jar와 ojdbc14.jar 모두 있었습니다.

classes12_9i.jar를 보고 있었던 것 같네요.. 

classes12_9i.jar -> ojdbc14.jar로 변경하니 오류가 해결되었습니다.

 

 - 오라클과 jdk 버전에 따른 jdbc 드라이버 안내

1. Oracle Database 11g Release 1 (11.1.0.6) drivers
ojdbc5.jar - Classes for use with JDK 1.5

2. Oracle Database 10g Release 2 (10.2.0.4), (10.2.0.3), (10.2.0.2), (10.2.0.1.0) drivers
classes12.jar - for use with JDK 1.2 and JDK 1.3
ojdbc14.jar - classes for use with JDK 1.4 and 1.5

3. Oracle Database 10g (10.1.0.5), (10.1.0.4), (10.1.0.2.0) drivers
classes12.jar - for use with JDK 1.2 and JDK 1.3
ojdbc14.jar - classes for use with JDK 1.4

4. Oracle9i Release 2 (9.2.0.8), (9.2.0.5), (9.2.0.4), (9.2.0.3), & (9.2.0.1) drivers
ojdbc14.jar - For use with JDK 1.4
classes12.jar - For use with JDK 1.2 and JDK 1.3

5. Oracle9i Release 1 (9.0.1.4) & (9.0.1) drivers
classes12.jar - For use with JDK 1.2 and JDK 1.3

jdk 1.6이상 오라클 11g 이상을 사용하신다면 아래 링크를 확인하시면 됩니다.

animal-park.tistory.com/172

728x90
반응형
728x90
반응형

ORA-00054 resource busy and acquire with nowait specified or timeout expired

ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다. (TABLE LOCK) 

ORA-00054 문제에 대해 알아보겠습니다.

해당 메세지는 DB의 lock이 걸린 경우 또는 테이블 컬럼 변경시 해당 테이블이 사용중에 있을 때 발생합니다.

 

현재 사용중인 자원의 쿼리를 확인할 수 있습니다.

SELECT A.SID
     , A.SERIAL#
     , A.STATUS
  FROM V$SESSION A
     , V$LOCK B
     , DBA_OBJECTS C
 WHERE A.SID         = B.SID
   AND B.ID1         = C.OBJECT_ID
   AND B.TYPE        = 'TM'
   AND C.OBJECT_NAME = '테이블명'
;

lock이 발생한 경우라면 kill을 해주고 

ALTER SYSTEM KILL SESSION 'sid, serial#';

lock이 아닌 해당 테이블을 사용 중이라면 기다리거나 사용자가 사용하는 시간 외에 작업을 진행해 주시면 됩니다.

 

728x90
반응형
728x90
반응형

저는 DB툴로 SQLGate for Oracle Developer를 사용하고 있는데요.

노트북을 새로 구매하여 기존에 있던 접속 정보 백업이 필요했습니다.

접속 정보가 10개 미만이라면 수동으로 다시 저장할 수 있었지만 60개 이상이라 수동으로 저장하기가 어려웠습니다..ㅜ

그래서 구글링하여 접속 정보 백업하는 방법을 찾아 포스팅하려 합니다.

 

1. SQLGate 접속 정보 위치

 : SQLGate 설치된 경로로 이동합니다.

ex) C:\Program Files (x86)\SQLGate\SQLGate for Oracle Developer\bin

 - Connect.dat

 - SQLHistory.dat

위 두 개의 파일을 복사해주시면 됩니다.

 

복원이 완료된 것 을 확인할 수 있습니다.

728x90
반응형
728x90
반응형

오라클 계정 잠금 해제하는 법에 대해 알아보겠습니다.

오라클에서 계정 접속시 패스워드가 틀리거나 180일동안 접속하지 않으면 계정이 잠깁니다.

 

계정 잠금 화면

잠김 계정을 해제하기위해 SYSTEM 계정으로 접속합니다.

1. 계정 정보 확인하는 쿼리

SELECT * FROM DBA_USERS WHERE username='잠긴계정";

ACCOUNT_STATUS의 값이 LOCK이라면 계정이 잠겼다는 의미입니다.

2. 잠금해제

ALTER USER [사용자계정] ACCOUNT UNLOCK;

 

3. 패스워드 재설정

ALTER USER [사용자계정] IDENTIFIED BY [비밀번호];

 

open으로 변경된 것을 확인할 수 있습니다.

 

728x90
반응형
728x90
반응형

본인이 설치한 mssql의 버전을 까먹는 경우가 있죠

제가 그랬습니다...ㅎㅎ

 

구글링해보니 쿼리로 설치된 MSSQL 버전을 확인할 수 있더라구요.

바로 알아보도록 하겠습니다.

 

select @@VERSION

 

조회 결과

Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 
Oct 20 2015 15:36:27 
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3  (Build 9600: ) (Hypervisor)

Microsoft SQL Server 2012버전이 설치된 것을 확인할 수 있습니다.

 

추가로 자세한 버전에 대한 함수 정보는 아래 URL을 통해 확인하시면 될 것 같습니다.

https://docs.microsoft.com/ko-kr/sql/t-sql/functions/version-transact-sql-configuration-functions?redirectedfrom=MSDN&view=sql-server-ver15

728x90
반응형
728x90
반응형

테이블 내 컬럼을 조회하려나 아래와 같은 메세지가 발생하였습니다.

키워드 'lineno' 근처의 구문이 잘못되었습니다.

구글링 결과 mssql에서 lineno를 키워드로 사용하고 있어 발생하였습니다.

키워드를 컬럼명으로 사용을 원한다면 "" 따옴표를 붙여 조회하시면 됩니다.

ex) select "lineno" from dual;

 

예약어

https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-ver15

728x90
반응형
728x90
반응형

오라클에서 원격 접속 차단하는 방법에 대해 알아보겠습니다.

접속하는 피시에서 서버의 Listener를 통해 DB를 접속하는 경우가 있습니다.

제한을 두지 않는다면 모든 사용자가 접속을 할 수 있습니다.( DB접속 정보를 알고있다는 가정하에)

Listener 설정을 통해 차단 및 허용 IP 설정이 가능합니다.

sqlnet.ora파일을 수정해주시면 되는데요.

sqlnet.ora파일은 $ORACLE_HOME/network/admin/sqlnet.ora

오라클 설치경로 $ORACLE_HOME 디렉토리 하단에 존재합니다.

$ORACLE_HOME 오라클 설치 시 환경변수로 설정해두셨을 거라고 생각되는데요.

저는 D드라이브 밑에 오라클을 설치해두었습니다.

sqlnet.ora 파일을 찾으셨다면 에디터 프로그램으로 sqlnet.ora파일을 편집합니다.

 

TCP.VALIDNODE_CHECKING=YES
TCP.INVITED_NODES= (접속 허용 IP )
TCP.EXCLUDED_NODES= (접속 차단 IP)

 

편집후에는 listener를 재시작해줘야 해당 설정이 반영됩니다.

작업관리자 -> Listener 재시작

실제로 적용 되는지 테스트를 해보았습니다.

1. 접속 허용 IP만 지정 (TCP.INVITED_NODES)

접속 허용 IP를 지정한 경우 해당 IP외 모든 IP는 접속이 제한됩니다.

2. 접속 차단 IP지정(TCP.EXCLUDED_NODES)

 2.1) 차단IP외 다른 IP에서 접속한 경우

 2.2) 차단IP에서 접속한 경우

차단 IP에서 접속한 경우에도 동일한 에러 메세지가 발생하네요.

3. Listner 종료 시 발생한 에러

ORA-12505, TNS: listener does not currently know of SID given in connect descriptor

메세지와 함께 DB접속이 되지 않네요.

 

추가로 여러 개 IP를 넣고 싶다면 쉼표(,)를 통해 구분하여 작성할 수 있습니다.

 

728x90
반응형
728x90
반응형

ORA-01722: invalid number 또는 ORA-01722: 수치가 부적합합니다. 

에러에 대해 알아보겠습니다.

 

저는 테이블에 값을 insert하는 중에 발생했는데요.

원인을 찾아보니 data형태가 맞지 않아서 발생한 오류.

숫자형 컬럼에 '숫자'를 입력함으로서 invalid number 오류가 발생.

문자형을 숫자형으로 변형하는 것은 문제가 없지만

숫자형을 문자형으로 변형하는 경우 에러가 발생한다고 합니다.

 

 

오라클 공식 도큐먼트입니다.

http://www.orafaq.com/wiki/ORA-01722

728x90
반응형
728x90
반응형

+ Recent posts