본문 바로가기

Oracle7

오라클 오류 : ora-01466 ORA-01466 unable to read data - table definition has changed 오라클에서 테이블 형식이나 속성이 변경되면 flashback 이 안된다는 의미다. 순간 당황스러웠지만 알고나니 테이블에 제약조건이나 컬럼추가를 신중히 해야겠다. 2022. 5. 2.
실수로 데이터를 삭제했을때 스피드가 생명. SELECT * FROM TMP AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE) WHERE ID = '1' INTERVAL에 넣을 수 있는 조건은 HOUR, MINUTE, SECOND 다만 스피드가 생명..삭제되었을 때 바로 처리해야지 늦으면 복구를 못하거나 백업 DB에서 복구해야 함. 늦을수록 일은 커짐. 2020. 2. 19.
ORA-30926: unable to get a stable set of rows in the source tables ORACLE 데이터베이스를 사용하다보면 MERGE INTO 명령어가 유용할 때가 있다. INSERT, UPDATE를 한방에 해주니까. 그런데 가끔 오류가 발생한다. ORA-30926: unable to get a stable set of rows in the source tables MERGE INTO 문법을 보면 MERGE INTO employees e USING hr_records h ON (e.id = h.emp_id) WHEN MATCHED THEN UPDATE SET e.address = h.address WHEN NOT MATCHED THEN INSERT (id, address) VALUES (h.emp_id, h.address) 여기서 중요한게 USING에서 사용되고 있는 테이블의 ON 조건.. 2020. 2. 4.
오라클에서 TO_CHAR 사용시 공백생기는 이유 숫자를 문자로 변환할 때 가장 많이 사용하는 함수. TO_CHAR 가끔 변환된 문자열앞에 공백이 붙는경우가 있음. 이유는 숫자인 경우 양수는 공백, 음수는 '-'가 붙는다. 없애는 방법은 형식에 'FM'을 넣으면 해결. SELECT TO_CHAR(999, '000') FROM DUAL; -- 결과 ' 999' SELECT TO_CHAR(999, 'FM000') FROM DUAL; -- 결과 '999' SELECT TRIM(TO_CHAR(999, '000')) FROM DUAL; -- 결과 TRIM(' 999') 2020. 1. 30.
오라클 유용한 함수 정리 1. Character Functions ① LOWER( column|expression ) LOWER('String') --> string : 소문자로 변환 ② UPPER( column|expression ) UPPER('String') --> STRING : 대문자로 변환 ③ INITCAP( column|expression ) INITCAP('string') --> String : 첫글자만 대문자이고 나머지글자는 소문자로 변환 ④ CONCAT( column1|expression1 ,column2|expression2 ) CONCAT('Good','String') --> GoodString : ||와 같은 역할을 한다. ⑤ SUBSTR(column|expression, m [,n]) : m값이 음수면 .. 2018. 11. 16.
오라클 정규식 모음 정규표현식에 관한 기본 지식 필요.다음과 같은 기호가 어떤 의미인지 알고 있으면 좋음.. , * , ? , ^ , $ , + , | , {} , []REGEXP_LIKE : https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htmREGEXP_LIKE(COLUMN, '[az][0-9]')REGEXP_LIKE(COLUMN, '[az].[0-9]')REGEXP_LIKE(COLUMN, '[az]?[0-9]')REGEXP_LIKE(COLUMN, '[az]*[0-9]')REGEXP_LIKE(COLUMN, '[az]{2}')REGEXP_LIKE(COLUMN, '^[az]')REGEXP_LIKE(COLUMN, '[0-9]$')REGEXP_LIKE.. 2018. 3. 20.