2013-05-27

2013-05-23

ORACLE문자 처리 함수

upper 대문자로 변환

lower  소문자로 변환

intcap 이니션만 대문자로 변환

length 문자열의 길이를 알려준다.

inster 특정문자가 출현하는 위치를 알려주는 함수

select inster('Welcome to Orale 10g','o',3,2) from dual;

substr 문자의 일부분을 추출하는 함수(Mysql은 substring)

select substr ('Welcome to Orale 10g','o',3,2) from dual;

lpad 오른쪽 정렬 후 왼쪽에 생긴 빈 공백에 특정 문자를 채운다.

select substr ('Orale 10g',10,'#') from dual;

###########Orale 10g
rpad 왼쪽 정렬 후 오른쪽에 생긴 빈 공백에 특정 문자를 채운다.

select substr ('Orale 10g',10,'#') from dual;

Orale 10g###########

ltrim 왼쪽에서 특정 문자 삭제한다.

select ltrim ('aaaaaaOrale 10gaaaaaa','a') from dual;

select ltrim('         Orale 10g          ') from dual;

rtrim 오른쪽에서 특정 문자 삭제한다.

select rtrim('aaaaaaOrale 10gaaaaaa','a') from dual;

select rtrim('       Orale 10g     ') from dual;

ORACLE dual 사용법

select 10* 20 from dual;

ORACLE (is null, is not null)

null 인거

select * from emp where mgr is null;

null 아닌거
select * from emp where mgr is not null;

ORACLE 연산자( in, not in)

select  * from emp where comm in(300, 500, 1400)

select * from emp where comm not in(300, 500, 1400)

2013-05-10

java.sql.SQLException: ORA-06550: 식별자가 정의되어야 합니다

java.sql.SQLException: ORA-06550: 줄 1, 열7:PLS-00201: 'PROC_INPUT_DATA' 식별자가 정의되어야 합니다
ORA-06550: 줄 1, 열7:PL/SQL: Statement ignored

상황:
CallableStatement에서 사용하는 프로시져가 없는 경우, 오타 등으로 못찾는 경우

해결:
1. 'PROC_INPUT_DATA' Procedure를 만들어준다.
2. 컴파일이 안된경우 생긴다.

2013-05-09

오라클 날짜 사용방법

TO_CHAR(MI.CREATE_DATE, ''YYYY-MM-DD HH24:MI'')AS CREATE_DATE



SELECT * FROM CHANGES where TO_CHAR(CREATE_DATE,'YYYY') = '2009'

SELECT * FROM CHANGES where TO_CHAR(CREATE_DATE,'YYYY-MM-DD') = '2009-05-04'

 UPDATE ITEM_RESULT set update_DATE = TO_DATE('2013-08-06 20:05:14', 'YYYY-MM-DD HH24:MI:SS')  WHERE SMP_RESULT_no = 1
           

오라클 프로시저 TO_DATE select 할 때 사용하는 방법

 TO_DATE (''' || V_START_DATE  || ''',''YYYY-MM-DD'') + 23.9998 / 24

오라클 select를 이용한 내용 확인

오라클 select를 이용한 내용 확인
※ Oracle SID 확인
SQL> select instance from v$thread;
※ Oracle DB_NAME 확인
SQL> select name from v$database;
※ Oracle User 확인
SQL> select * from all_users;
※ 등록된 User 목록 보기
SQL> select username, user_id from dba_users order by username;
※ User가 소유한 모든 테이블 보기
SQL> select table_name from user_tables;
※ 사용자 정보 확인
SQL> select username, default_tablespace,temporary_tablespace from dba_users;
※ 오브젝트 조회
SQL> select * from all_objects where object_name like '명';
※ 테이블 조회
SQL> select * from all_tables where table_name like '명';
※ 시퀀스 정보 보기
SQL> select * from user_sequences;
※ 시노님 조회
SQL> select * from all_synonyms where synonym_name='명';
※ 테이블 인덱스 정보 조회
SQL> select * from all_ind_columns where table_name='테이블명';
※ 테이블의 컬럼 정보 조회
SQL> select * from all_tab_columns where table_name='테이블명';
※ table comment 쿼리
SQL> select * from all_tab_comments where table_name='테이블명';
※ column comment 쿼리
SQL> select * from all_col_comments where table_name='테이블명';
※ 프로시저내용확인
select * from all_source where name = '프로시저명'
※ 프로시저목록 확인
select * from user_procedures

※ 테이블에 필드추가
-- 소유자.테이블명  add 필드명
ALTER TABLE OWNMIS.ABC ADD RMKC1 VARCHAR2(120);   -- VARCHAR 의 경우
ALTER TABLE OWNMIS.ABC ADD RQST_BR_NO CHAR ( 4) DEFAULT ' ' NOT NULL; -- CHAR 의 경우
ALTER TABLE OWNMIS.ABC ADD REG_SEQ NUMBER ( 7 ,   0 ) DEFAULT 0 NOT NULL;  --- 숫자의 경우

※ 제약조건 확인하기
SELECT
 SUBSTR(A.COLUMN_NAME,1,30) AS COLUMN_NAME   -- 컬럼명
,DECODE(B.CONSTRAINT_TYPE
       ,'P','PRIMARY KEY'
       ,'U','UNIQUE KEY'
       ,'C','CHECK OR NOT NULL'
       ,'R','FOREIGN KEY'
      ) AS CONSTRAINT_TYPE                 -- 제약조건 TYPE
,A.CONSTRAINT_NAME AS CONSTRAINT_NAME      -- 제약 조건 명
FROM USER_CONS_COLUMNS@DRUGLIMS_PORTAL A
    ,USER_CONSTRAINTS@DRUGLIMS_PORTAL  B  
WHERE     A.TABLE_NAME = UPPER('테이블명')  
      AND A.TABLE_NAME = B.TABLE_NAME  
      AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME  
ORDER BY 1

※ 프로시저 컴파일
ALTER PROCEDURE procedure_name COMPILE

※테이블 스키마 생성 스크립트 뽑기
Select dbms_metadata.get_ddl('TABLE','FILE_DB_CONNECTION','RDMS') FROM DUAL
※락걸린거 확인
SELECT A.SID
  , A.SERIAL#
  , A.USERNAME
  , A.PROCESS
  , B.OBJECT_NAME
  , DECODE (C.LMODE, 2, 'RS', 3, 'RX', 4, 'S', 5, 'SRX', 8, 'X', 'NO') TABLE_LOCK
  , DECODE (A.COMMAND, 2, 'INSERT', 3, 'SELECT', 6, 'UPDATE', 7, 'DELETE', 12, 'DROP', 6, 'LOCK', 'UNKNOWN') SQL
  , DECODE (A.LOCKWAIT, NULL, 'NO WAIT', 'WAIT') STATUS
FROM   V$SESSION A, DBA_OBJECTS B, V$LOCK C
WHERE  A.SID = C.SID
AND    B.OBJECT_ID = C.ID1
AND    C.TYPE = 'TM'
AND    A.USERNAME = 'SRIMS_AD';

select * from all_objects where object_name like '명';
select * from all_objects WHERE OWNER = 'SRIMS_AD' AND OBJECT_TYPE = 'TABLE'

SELECT * FROM CHANGES_TEMPLATE WHERE PRIMARY_NO = 90536 AND TABLE_NAME = 'ITEM_RESULT' ORDER BY CREATE_DATE