728x90
반응형
728x90
반응형

[사용 샘플 쿼리]

select sysdate,
    (sysdate-1/24/60) "1분 전",
    (sysdate-1/24/30) "2분 전",
    (sysdate-1/24/12) "5분 전",
    (sysdate-1/24/6) "10분 전",
    (sysdate-1/144) "10분 전",
    (sysdate-30/1440) "30분 전",
    (sysdate-1/24) "1시간 전",
    trunc(sysdate-1) "1일 전",
    trunc(sysdate-7) "7일 전",
    trunc(sysdate-30) "30일 전",
    trunc(sysdate+1)-6/24 "6AM 전",
    trunc(sysdate+1)-2/24 "2PM 전" 
from dual;

 

[결과]

 

728x90
반응형
728x90
반응형

오라클 사용하여 개발시 아래와 같은 오류가 발생했는데요.

  • ORA-01031: insufficient privileges
  • ORA-01031: 권한이 불충분합니다

구글링 결과 공유 드립니다

 

1. 원인

 : 사용하고 있는 계정이 쿼리를 실행할 권한이 없어서 발생한 오류

 : DDL 관련 쿼리 접근 시 위와 같은 오류가 발생

 

2. 해결 방법

1) DBA에게 관련 내용 문의

 : DBA에게 실행하고자 하는 쿼리와 권한 부여 요청을 한다.

 

2) DBA가 없다면

 : admin 계정을 확인하여 권한을 부여

 : GRANT CREATE ANY TABLE TO [사용하는 계정]

728x90
반응형
728x90
반응형

테이블 데이터 삭제하는 방법에 대해 알아보겠습니다.

 

1) 테이블 삭제하기

 1-1) DROP

     DROP TABLE 테이블명;

 

2) 테이블 데이터 삭제하기

 2-1) DELETE

     DELETE FROM 테이블명 [WHERE 조건절];

 

 2-2) TRUNCATE

     TRUNCATE TABLE 테이블명;

 

DROP은 테이블 자체를 삭제하며 DELETE, TRUNCATE는 테이블 구조는 그대로 남고 테이블 내 삭제만 됩니다.

DELETE, TRUNCATE의 차이점

DELETE는 데이터만 지워지며 디스크 용량은 그대로 가짐

TRUNCATE는 데이터 뿐만아니라 용량도 삭제됨.

728x90
반응형
728x90
반응형

1. DB 전체 용량 확인
select sum(bytes) from dba_data_files;

select sum(bytes)/1024/1024/1024 ||'GB' from dba_data_files;    



2. DB 사용량 확인
select sum(bytes) from dba_segments;

select sum(bytes)/1024/1024/1024 ||'GB' from dba_segments;    



3. DB 여유량 확인
select sum(bytes) from dba_free_space;

select sum(bytes)/1024/1024/1024 ||'GB' from dba_free_space; 

 

 

728x90
반응형
728x90
반응형

프로시져 실행 시 리턴값으로 사용되는 out 변수가 있을 경우 실행하는 방법입니다.

--OUTPUT 출력 메세지

DECLARE
        V_RETURNCODE VARCHAR2(100);
        V_MSG VARCHAR2(100);
BEGIN
        SP_MSG_TEST('testdata',V_RETURNCODE, V_MSG);

DBMS_OUTPUT.PUT_LINE('V_MSG------->' || V_RETURNCODE);
DBMS_OUTPUT.PUT_LINE('V_MSG------->' || V_MSG);

END;

 

728x90
반응형
728x90
반응형

 

ORA-28040: No matching authentication protocol

ORA-28040: 일치하는 인증 프로토콜 없음

 

프로젝트 셋팅중 위와 같은 오류가 발생하였는데요.

1. 오류 상세

java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection exception: 
java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection no connection available 
java.sql.SQLException: Cannot get connection for URL jdbc:oracle:thin:@192.168.1.xx:1521:orcl : ORA-28040: No matching authentication protocol

2. 원인

오라클 12c 서버와 클라이언트의 버전차이라고 하네요.

저같은 경우 오라클 11g에서 12c로 업그레이드 한 경우에 발생하였습니다.

 

3. 해결방법

1) jdbc.jar 파일 수정

 : ojdbc14.jar 파일을 jdk 버전에 맞게 ojdbc5~8로 수정하여 서비스 시작.

 

2) SQLNET.ORA 파일 수정

 가. SQLNET.ORA 위치로 이동

  - \app\계정\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora

 나. 텍스트 추가

  - SQLNET.ALLOWED_LOGON_VERSION_SERVER=9
  - SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

 다. 리스너 재시작

위 방법에도 저는 해결이 안되어 문제를 찾아보니 프로젝트 lib폴더에 ojdbc14.jar 파일이 있었네요...

 

728x90
반응형
728x90
반응형

ERP와 연동하는 기능이 있는데 ERP를 고도화하면서 DB 버전이 업그레이드 되었습니다.

(window server 2008 -> SQL Server 2017, ERP는 mssql을 사용)

아래와 같은 문제가 발생하여 기존 연동하는 기능이 안되는 증상이 발생했습니다.

 

오류 내용

com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 원인: java.lang.RuntimeException: Could not generate DH keypair

상세 오류

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 원인: java.lang.RuntimeException: Could not generate DH keypair
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)
	at com.microsoft.sqlserver.jdbc.TDSChannel.throwSSLConnectionFailed(Unknown Source)
	at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
	at com.caucho.sql.DriverConfig.createDriverConnection(DriverConfig.java:596)
	at com.caucho.sql.ManagedConnectionImpl.initDriverConnection(ManagedConnectionImpl.java:242)
	at com.caucho.sql.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:131)
	at com.caucho.sql.ManagedFactoryImpl.createManagedConnection(ManagedFactoryImpl.java:121)
	at com.caucho.jca.ConnectionPool.create(ConnectionPool.java:780)
	at com.caucho.jca.ConnectionPool.allocatePool(ConnectionPool.java:649)
	at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:608)
	at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:505)
	at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:65)
	at com.caucho.sql.DBPool.getConnection(DBPool.java:624)

원인은 구글링해보니 JDBC호환 문제라고 하네요.

기존에 사용하는 sqljdbc4.jar를 jtds-1.2.5.jar파일로 변경하였습니다.

JDBC 드라이버를 변경했으니 was config설정도 변경해주어야 합니다.

 

MSSQL JDBC 드라이버 설정 방법

Driver [com.microsoft.sqlserver.jdbc.SQLServerDriver]
URL [jdbc:sqlserver://localhost:1433;DatabaseName=DBNAME]
* JDBC드라이버 : sqljdbc.jar 또는 sqljdbc4.jar (MS-SQL 2008까지 지원)

 
Driver [net.sourceforge.jtds.jdbc.Driver]
Driver [net.sourceforge.jtds.jdbcx.JtdsDataSource]
URL [jdbc:jtds:sqlserver://localhost:1433/DBNAME;tds=8.0;lastupdatecount=true]
* JDBC드라이버 : jtds-1.2.jar
728x90
반응형
728x90
반응형

1. 테이블 조회
  1) 테이블 목록 조회
     SELECT * FROM all_all_tables;

     SELECT * FROM dba_tables;

     SELECT * FROM ALL_OBJECTS 
     WHERE OBJECT_TYPE = 'TABLE';

  2) 접속한 계정의 테이블 목록 조회
     SELECT * FROM tabs;
 
     SELECT * FROM USER_OBJECTS 
     WHERE OBJECT_TYPE = 'TABLE';
 
     SELECT * FROM USER_TABLES;

  3) 테이블 코멘트 조회
     SELECT * FROM ALL_TAB_COMMENTS

     WHERE TABLE_NAME = '테이블명';
 
     SELECT * FROM USER_TAB_COMMENTS;


2. 컬럼 조회
  1) 컬럼 조회
     SELECT * FROM COLS 
     WHERE TABLE_NAME = '테이블명';

     SELECT * FROM ALL_TAB_COLUMNS 
     WHERE TABLE_NAME = '테이블명';

     SELECT * FROM USER_TAB_COLUMNS;

  2) 컬럼 코멘트 조회
     SELECT * FROM USER_COL_COMMENTS;

 

 

728x90
반응형
728x90
반응형

+ Recent posts