레이블이 Oracle인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Oracle인 게시물을 표시합니다. 모든 게시물 표시

2019년 4월 23일 화요일

윈도우 Windows10에서 오라클 Oracle11g 64bit 삭제



오라클 64bit를 삭제하고 32bit를 재설치 하는김에 오라클 삭제 정리해봄.

아래 순서대로 진행
  • 시작 > Windows 관리도구 > 서비스





  • 이름이 Oracle로 시작하는것 중에서 상태가 실행 중인것을 모두 중지





  • 시작 universal installer 입력하고 실행






  • 제품 설치 해제






  • OraDb11g_home1 체크 후 제거






  • 경고창의 주소로 이동






  • deinstall 마우스 우클릭 > 관리자 권한으로 실행






  • 여기서 Enter






  • 데이터베이스 이름 그대로 입력 Enter





  • y 입력 후 Enter




  • 오라클 11g가 설치된 경로 삭제, C:\Program Files\Oracle 도 삭제






  • 시스템 재부팅






  • 레지스트리까지 지울경우 재부팅 후 시작 > regedit, 레지스트리 편집기 실행





  • HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 삭제




2017년 5월 25일 목요일

Oracle ORA-00900 에러


ORA-00900: invalid SQL statement

ORA-00900: sql 문이 부적합합니다

sql 문법이 잘못되어서 발생한다.

에러범위가 너무 광범위하다. 구문이 잘못되었다는 것을 보여주는 예를 들면
SELECT 1 FROM DUAL
에서 SELECT 의 'T' 를 빼고
SELEC 1 FROM DUAL
실행시키면





sql문에 오타여부와 잘못 된 구문이 있는지 확인해야한다.


ORA-00900: invalid SQL statement 오류는 "잘못된 SQL 문장" 이라는 뜻이에요.

쉽게 말하면, 오라클이 이해할 수 없는 문법이 들어갔을 때 이 에러가 납니다.


주요 원인들은 다음과 같아요:

원인 설명 예시
문법 오류 SQL 문장이 오라클 문법에 맞지 않음 select * form table_name; (form 오타)
지원 안 되는 명령어 사용 오라클에 없는 문법 사용 show databases; (MySQL 문법)
PL/SQL 문장을 SQL에서 실행 BEGIN, END 같은 PL/SQL을 SQL에서 실행하려고 함 BEGIN dbms_output.put_line('Hello'); END;
세미콜론(;) 문제 일부 도구에서는 세미콜론이 문제 될 수 있음

해결법:

  1. SQL 문장을 다시 점검
    → 키워드, 테이블명, 문장 구조 확인하기.

  2. PL/SQL이라면 블록으로 실행
    → 예를 들면 SQL*Plus나 SQL Developer에서

    BEGIN
      dbms_output.put_line('Hello');
    END;
    /
    

    이렇게 /를 붙여서 실행해야 해요.

  3. 툴 차이 확인
    → SQL Developer, Toad, DBeaver 같은 툴에서는 명령어가 다르게 먹을 수 있음.
    예를 들면 SHOW 명령어는 오라클 기본 SQL에 없어요.

2017년 5월 24일 수요일

오라클 Oracle 콤마(,) 문자열을 행(row)으로 분리


컬럼에  'AAA,BBB,CCC,DDD' 라는 값이 있다면,

오라클 10G
Select Regexp_Substr('AAA,BBB,CCC,DDD','[^,]+', 1, Level) From Dual
Connect By Regexp_Substr('AAA,BBB,CCC,DDD', '[^,]+', 1, Level) Is Not Null


오라클 9i
SELECT     SUBSTR (TEST,
                   INSTR (TEST, ',', 1, LEVEL) + 1,
                   INSTR (TEST, ',', 1, LEVEL + 1) - INSTR (TEST, ',', 1, LEVEL)
                   - 1
                  ) AS ROWDATA
FROM (SELECT ',' || 'AAA,BBB,CCC,DDD' || ',' AS TEST
              FROM DUAL)
CONNECT BY LEVEL <= LENGTH (TEST) - LENGTH (REPLACE (TEST, ',')) - 1

결과




Oracle 9i WM_CONCAT ORA-00904


ORA-00904: 열명이 부적합합니다

oracle 10g 에서 쓰고있던 WM_CONCAT 가 9i에서 에러가 발생했다.

다음과 같이 교체하자.


  • oracle 9i

SUBSTR(XMLAgg(XMLElement(x, ',', COLUMN)).Extract('//text()'), 2)


  • oracle 10g

WM_CONCAT(COLUMN)


  • oracle 11g

ListAgg(COLUMN, ',') WITHIN GROUP(ORDER BY ROWNUM)
 

2017년 5월 23일 화요일

Oracle ORA-01427 에러


ORA-01427: single-row subquery returns more than one row

ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.


말그대로 서브쿼리 결과가 2건 이상이라서 발생하는 에러이다.

서브쿼리 결과는 1건 이하여야 한다.

SELECT, INSERT, UPDATE 어디서든 서브쿼리를 사용하는 곳에서 에러발생 가능성이 있다.

간단한 예로

  • 에러발생 쿼리
SELECT 'A',
        (
        SELECT 'A' FROM DUAL
        UNION
        SELECT 'B' FROM DUAL
        ) AS TEST
FROM DUAL


  • 정상적인 쿼리
SELECT 'A',
        (
        SELECT 'A' FROM DUAL
        ) AS TEST
FROM DUAL

2017년 5월 12일 금요일

오라클 Oracle IndexOf기능 INSTR


원하는 값과 컬럼 값을 비교하여 포함여부와 위치를 알 수 있다.

INSTR('대상문자열', '비교값', 시작위치, 검색결과순번위치)

  • SELECT INSTR('ABCDEFG', 'C') FROM DUAL
-> 결과 = 3

  • SELECT INSTR('ABCDEFG', 'H') FROM DUAL
-> 결과 = 0
없으면 0 

  • SELECT INSTR('ABCDEFGABCDEFG', 'C', 1, 2) FROM DUAL
-> 결과 10
 ABCDEFGABCDEFG 에서 C의 위치가 1부터시작, 2번째 C의 위치

2017년 4월 24일 월요일

Oracle ORA-00904 에러


ORA-00904: "컬럼": invalid identifier

ORA-00904: 열명이 부적합합니다

SELECT, INSERT, UPDATE 어디서든 에러발생 가능성이 있다.

쿼리를 확인해보면 테이블에 없는 컬럼이 있어서 발생하는 에러이다.

오타가 있을 가능성도 있다.

그리고,

쿼리문에 오라클 함수를 사용하고 있다면,

오라클 버전에 따라 함수 제공여부가 다르므로, 해당 오라클 버전에서 함수를 제공하는지 확인해야한다.

예)
WM_CONCAT 함수를 오라클9i 에서 사용 시 ORA-00904 에러가 발생한다.
 

Oracle ORA-01400 에러


ORA-01400: cannot insert NULL into ("USER"."테이블"."컬럼")

INSERT 에러.

테이블 구조를 확인하면 컬럼이 NOT NULL 로 잡혀있을 것임.

INSERT 할 때 NOT NULL 로 되어있는 컬럼에 NULL이 들어가서 생기는 에러.

🧠💥 이탈리안 브레인롯(Italian Brainrot): 인터넷 밈의 신세계 🇮🇹

요즘 SNS에서 유행하는 이상한 말투, 이탈리아 억양, 그리고 피자 이모지 🤌🍕. 이게 다 뭔지 궁금하셨다면, 바로 이 ‘이탈리안 브레인롯(Italian Brainrot)’ 때문입니다! 중독성 있는 이 밈, 지금부터 쉽고 재밌게 알아볼게요. ...