DataBase/Oracle5 [Oracle] NULL은 비교할 수 없다?? 화면에서 원하는 결과가 나타나지 않아 쿼리를 살펴보다가 알아낸 사실! 결론부터 말하면 NULL은 비교연산자를 사용할 수 없다. 예를들면 조건절에서 A = {param} 을 비교할 때 A = NULL 또는 param = NULL 이면 해당 쿼리는 정상적으로 작동하지 않을 것이다. 빈 문자열("") 도 마찬가지로 NULL 과 동일! 대신 IS Null, IS NOT NULL 은 또 된다. 만약 NULL 값이 나올 수 있는 컬럼에 비교연산자를 사용하고 싶다면 DECODE 나 NVL를 사용하여 NULL을 경우 특정 값으로 처리하여 사용하면 된다. DataBase/Oracle 2022. 5. 20. [Oracle] 오라클 컬럼 존재여부 확인 프로젝트를 진행하다가 shp 파일로 DB import를하는과정에서 컬럼존재여부 확인할 필요가 있었다. 코멘트를 컬럼마다 달아줘야하는데 같은 테이블이라도 DB import를 시켰을 때 가지고 있는 컬럼이 제각각이였기 때문.. 그래서 오라클의 특정 테이블에서 컬럼이 존재하는지 여부를 확인하는 쿼리를 알아왔다. 이 쿼리는 오라클 관리테이블인 ALL_TAB_COLUMNS 테이블을 조회하여 사용한다. 조회 쿼리는 아래와 같다. SELECT COUNT(*) cnt FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '테이블명' and COLUMN_NAME = '컬럼명' and OWNER ='스키마명' ; - 조회하고 싶은 테이블 명, - 해당 테이블안에 존재여부를 판단할 컬럼명 - 테이블을 소유.. DataBase/Oracle 2021. 7. 6. [Oracle] ORA-28002, 비밀번호만료, 오라클 비밀번호 만료 제한 해제 Oracle을 사용하다보면 위와 같이 ORA-28002 : *일 안에 비밀번호가 만기될 것 입니다. 메시지가 뜨는 것을 보았을 것이다. 오라클에서는 암호 사용기간을 저장하여 사용하는데 암호기간기 만료됬다는 뜻이다 DEFAULT 는 180일로 아래쿼리로 확인이 가능하다. SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT' AND RESOURCE_TYPE = 'PASSWORD'; => PASSWORD_LIFE_TIME 이 180임을 확인 할 수 있다. 이는 LIMIT 값을 UNLIMITED로 변경하면 해결되며 쿼리는 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 를 사용하면된.. DataBase/Oracle 2021. 2. 9. [Oracle] 모든테이블 한번에 삭제, 테이블 일괄삭제, 테이블 전체삭제 오라클에서 테이블을 삭제할 일이 필요할때 보통 우리는 DROP TABLENAME FROM USER; 와 같이 DROP 문을 실행하여 삭제를 합니다. 그러면 삭제할 테이블이 여러개라면 어떡할까요?? 또는 전체 테이블을 일괄로 삭제해야된다면 어떡할까요?? 안타깝게도 ORACLE DB는 위와같은 명령어가 존재 하지는 않다고합니다. 하지만 모든 테이블에 대한 DROP문을 받아올수는 있지요 ㅎㅎ SQL> SELECT 'DROP TABLE "' || TABLE_NAME || '" CASCADE CONSTRAINTS;' FROM user_tables; 위의 쿼리를 실행하면 DROP TBNAME1 FROM USER; DROP TBNAME2 FROM USER; DROP TBNAME3 FROM USER; DROP TBNA.. DataBase/Oracle 2020. 8. 19. [Oracle] 오라클 ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 오라클 ORA-01950 ?? 오류발생 : 테이블을 CREATE 할떄 위와 같은 에러로그가 찍힘 java.sql.SQLSyntaxErrorException:테이블스페이스 'JHUIS'에 대한 권한이 없습니다 ?? 오라클의 테이블스페이스라고 테이블이 저장되는 공간이 있는데 이 테이블스페이스에 대한 권한 중 테이블스페이스에 얼마만큼의 영역을 할당 할지에 대해 정해지지 않아서 발생하는 오류 인것 같다. 해결: 해당 테이블스페이스에 대한 공간할당을 unlimited 로 제한을 두지 않도록 변경한다. alter user [유저명] default tablespace [테이블스페이스] quota unlimited on [테이블스페이스]; 참고블로그: https://dololak.tistory.com/756 DataBase/Oracle 2020. 8. 12. 이전 1 다음