본문 바로가기

오라클14

Subquery returns more than 1 row 일을 하다보면 데이터베이스 쿼리를 짜고 실행하고 하는데 그 중에 오류가 발생한 경우가 생김.Oracle에서 쿼리를 실행할 때 "Subquery returns more than 1 row"라는 오류가 발생하였는데이 오류가 발생하는 원인을 찾아봤더니"서브쿼리가 단일 행만 반환해야 하는 상황에서 여러 행을 반환했을 때"  발생한다고 한다.이 오류는 주로 서브쿼리를 사용하는 조건절이나 SELECT 절에서 잘못된 논리로 인해 나타난다.1. "Subquery returns more than 1 row" 오류의 발생 원인단일 값만 필요할 때 여러 값을 반환:" = " 연산자는 단일 값을 비교할 수 있지만, 서브쿼리가 여러 행을 반환하면 오류가 발생다중 행 비교 연산자를 사용하지 않은 경우:서브쿼리가 여러 행을 반환할.. 2024. 12. 19.
[Oracle] MERGE기능 1. MERGE란? Oracle 데이터베이스에서 사용되는 SQL 문의 한 종류이며, 두 테이블 간의 조합, 삽입, 업데이트, 삭제 등을 단일 문으로 처리할 수 있도록 해준다. 이는 보통 "병합" 또는 "업서트(UPSERT)"라고도 불리며 MERGE 문은 대상 테이블(또는 뷰)과 소스 테이블 간의 조인 조건을 기반으로 대상 테이블을 조작한다. 기본적인 MERGE 문의 구조 MERGE INTO target_table USING source_table ON (condition) WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2, ... WHEN NOT MATCHED THEN INSERT (column1, column2, ...) VALUES (v.. 2023. 11. 19.
ORACLE이란? 장점 및 단점 1. ORACLE이란? Oracle은 대표적인 관계형 데이터베이스 관리 시스템(RDBMS)이다. 이는 데이터베이스 시스템 중 하나로, 대규모 데이터를 저장, 관리 및 처리하는 데 사용된다. Oracle Corporation에서 개발하고 유지보수하며, 다양한 기업과 조직에서 데이터베이스 솔루션으로 널리 사용된다. Oracle RDBMS는 클라이언트-서버 아키텍처를 기반으로 하며, 다양한 운영 체제에서 실행할 수 있다. 대규모 시스템에서도 안정적이고 성능이 우수하며, 복잡한 데이터 관리 기능과 보안 기능을 제공한다. Oracle 데이터베이스는 SQL(Structured Query Language)을 사용하여 데이터를 쿼리하고 관리한다. SQL은 데이터베이스에서 데이터를 추가, 수정, 삭제하고 검색하는 데 사.. 2023. 7. 24.
[Oracle] 프로시저 내용 조회 프로젝트에 투입되어 일을 하다보면 혼자 일하는게 아니라서 내가 만들지 않은 부분에 대해 조회를 해봐야하는 경우가 있는데 정리되어 있는 문서가 없을 경우 찾아보기가 난해할때가 있다. 그럴때 유용한 기능 중 하나 ▶ 프로시저, 함수 등의 내용 검색 SELECT A.OBJECT_ID , A.OBJECT_NAME , A.OBJECT_TYPE , A.TEXT FROM USER_OBJECTS A INNER JOIN USER_SOURCE B ON A.OBJECT_NAME = B.NAME WHERE A.OBJECT_TYPE IN ("찾고자하는 프로시저 등") /* PROCEDURE, FUNCTION, PACKAGE BODY, PACKAGE 등 */ AND A.TEXT LIKE '%찾으려하는 문구(단어)%' /* 찾으려.. 2023. 2. 24.
[Oracle]ORA-28002 에러 오랜만에 로컬 데이터베이스에 접속하니 이런 메세지가 떠버림.... 이거 먼고.... 데이터베이스 암호 사용기간이 만료란다! 데이터베이스가 만들어지고 암호의 기본 사용기간은 180일이라는것을 이번에 알게됨 암호 사용기간 설정 확인은 SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT' AND RESOURCE_TYPE = 'PASSWORD'; 로 확인하면 PASSWORD_LIFE_TIME 라는 항목이 암호 사용기간이며 변경하지 않은 상태였으면 180으로 되어있다. 비밀번호를 변경하려면 ALTER USER USER IDENTIFIED BY "신규비번" REPLACE "이전비번" ; 예시) ALTER USER USER_ID IDENTIF.. 2022. 2. 26.
[Oracle]데이터베이스 계정 관련 명령어 현재 DB에서 생성된 계정 확인 SELECT * FROM DBA_USERS; SELECT * FROM ALL_USERS; 사용자에게 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVX WHERE GRANTEE = '사용자명'; 사용자에게 부여된 롤 확인 SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '사용자명'; 사용자에게 부여된 롤에 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '롤명'; 타 사용자에게 부여한 객체(테이블 등) 권한 확인 SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '테이블소유자명'; OR SELECT * FROM DBA_TAB_PRIVS W.. 2020. 11. 2.