본문 바로가기

oracle3

[Oracle] ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 해당 오류가 났던 쿼리는 아래와 같았다. SELECT NAME FROM USER WHERE ID = ( SELECT DISTINCT PARENT_ID FROM USER WHERE(PARENT_ID = 'test' OR ID = 'test') ) 계정 하나에 여러개의 부계정을 사용하고 있는 데이터를 저장하는 테이블이다. WHERE절에 있는 서브쿼리에서 보면, 부모계정을 중복을 제거하고 1개만 가지고 오는데, 그 조건절에 보면 부모 ID가 test거나 자신의 ID가 test인 데이터를 찾는다. 그리고 데이터에서 본인 자신이 부모계정인 데이터의 부모 컬럼은 NULL로 들어가있다. 때문에 NULL과 test 2건을 리턴해서 발생하는 오류였다. 아래와 같이 NULL 제외 구문을 추가해서 오류를 해결해줬다. SEL.. 2023. 3. 8.
[Postgresql] Oracle 에서 Postgresql로 마이그레이션 할 때 쿼리 수정 팁! 1. FROM 절 내의 subquery에는 반드시 alias를 붙여준다. - select * from (select * from test) A; 2. rownum 함수를 쓸 수 없다. - ROW_NUMBER() OVER() 함수로 대체 - select row_number() over() AS view_num from test; 3. SYSDATE 대신 NOW() 를 쓴다. 4. 연산을 하거나, 비교할때에는 반드시 데이터 타입이 일치해야 한다. - 숫자로 변환하기 : 컬럼명::NUMERIC(38,0) - 캐릭터로 변환하기 : 컬럼명::CHARACTER VARYING(50) 5. CLOB 타입은 TEXT 타입으로 변환 됨 - 자바 xml에서 jdbc type 설정 해줘야 함. (clob 설정하듯이) 6. N.. 2022. 6. 21.
[oracle] SID 조회하기 쿼리로 검색 할 수 있다. 명령어 : SELECT NAME, DB_UNIQUE_NAME FROM V$DATABASE; 이렇게 나온다. 2022. 5. 31.