개발공작소
728x90
article thumbnail
[Oracle] 오라클 프로시저(Procedure) 생성 및 사용방법 ( DBeaver 활용 )
데이터베이스/Oracle 2022. 6. 3. 12:57

예전에 Postgresql에서 프로시저에 대해 정리를 해보았는데, 오라클도 한번 정리해보려고 한다. 프로시저란 쉽게 말해 자주 사용하는 쿼리를 미리 저장해놓았다가, 필요할 때마다 호출 하는 함수라고 생각하면 된다. 저장 프로시저라고도 한다. 오늘은 오라클에서 프로시저를 생성하고 호출하는 것만 해보려고 한다. 환경 : Oracle 11g , DBeaver 툴 사용 ( ※ 편하려고 DBeaver 툴 쓰는거니, sqlplus를 통해 직접 명령어를 입력해줘도 됨.. ) 글 쓰면서 알게 된 사실인데, Postgresql에는 Functions만 있고 Oracle은 Procedures와 Functions가 따로 있다. 신기하다. DBeaver가 알아서 그런 것도 캐치하는 듯... 아무튼 오늘은 프로시저를 만들거니까...

article thumbnail
[Oracle] 프로시저 호출 에러 ( SQL Error [900] [42000]: ORA-00900: invalid SQL statement )
데이터베이스/Oracle 2022. 6. 3. 12:11

오라클 프로시저를 호출 하였는데, 다음과 같은 에러가 발생했다. SQL Error [900] [42000]: ORA-00900: invalid SQL statement 에러 발생 원래 해당에러는 SQL문법이 잘못 되었을 때 생기는 에러인데.. 분명 문법적으로는 문제가 없는데.. 해당 프로시저 코드 CREATE OR REPLACE PROCEDURE MOCHI.TEST IS BEGIN UPDATE mochi.RECURSIVE_BOOK a SET a.BOOK_NAME = '6.25전쟁의_진실2' WHERE a.BOOK_ID = 111; END TEST; 프로시저 생성도 잘되었는데.. 왜 문법오류가 날까 해서 이것저것 찾아보았다. 그리고 아래 링크를 통해 찾게 된 방법은 exec 명령어가 아닌 call 명령어로..

article thumbnail
[Oracle] 오라클에서의 사용자와 스키마에 대한 정리
데이터베이스/Oracle 2022. 5. 6. 17:10

회사를 다니면서 Postgres만 거의 2년간 사용하다 보니, 오랜만에 Oracle을 가지고 스키마를 생성해 사용하려 하니, 생소해서 오늘은 오라클에서의 스키마에 대해 한번 정리해보려고 한다. 오라클과 다른 데이터베이스 소프트웨어(Postgres/MySQL...)에서의 스키마는 조금 다르다. Postgres Oracle 이런 느낌이다.. 그래서 보통 Postgres를 사용할 때는 필요한 스키마를 생성해서 스키마에 테이블 만들고 썼었는데.. Oracle에서는 그게 안되더라.. 그럼 실제로 한번 스키마를 만들어보면서 이해 해보도록 하자. 1) Oracle 사용자 생성 -- MOCHI라는 사용자를 생성 CREATE USER MOCHI IDENTIFIED BY MOCHI; -- MOCHI 사용자에게 DBA 권한..

article thumbnail
[Oracle] ORA-00907 에러 ( SQL Error [907] [42000]: ORA-00907: missing right parenthesis )
데이터베이스/Oracle 2022. 4. 30. 13:05

오늘 테이블을 생성하는데, 아래와 같은 에러가 발생했다. SQL Error [907] [42000]: ORA-00907: missing right parenthesis 에러내용은 우괄호가 빠졌다는 이야기인데... 내가 작성한 DDL은 아래와 같다. CREATE TABLE TEST.sm_popup( pop_id numeric NOT NULL, pop_yn bpchar(1) NULL, pop_sub varchar(50), pop_con varchar(200), beg_de varchar(8) NOT NULL, end_de varchar(8) NOT NULL, CONSTRAINT sm_popup_pkey PRIMARY KEY ([p[_id) ); 보통 이 에러는 괄호가 빠졌거나, 콤마가 빠졌을 때 발생하는 에..

[Oracle] 오라클 테이블 생성(CREATE), 수정(ALTER), 삭제(DROP)
데이터베이스/Oracle 2022. 3. 17. 08:41

따로 외우거나 공부해야 하기 보다는 기본문법을 보고 응용 할 수 있도록 만 하자. 기본문법 1. 테이블 생성 CREATE TABLE [테이블명]( [컬럼이름][데이터타입]([사이즈]) ); 2. 테이블 수정 컬럼명 변경 : ALTER TABLE[테이블 이름] RENAME COLUMN [변경전 이름] TO [변경 후 이름] 컬럼 추가 : ALTER TABLE[테이블 이름] ADD ([컬럼명][타입]([사이즈])); 컬럼 수정 : ALTER TABLE[테이블 이름] MODIFY ([수정할 컬럼명][수정할 타입][DEFAULT 관련][NOT NULL]); 3. 테이블 삭제 DROP TABLE[삭제할 테이블 이름]; 응용 -- 테이블 생성 CREATE TABLE shopList( product_no NUMBER..

article thumbnail
[Oracle] oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation 경고..
데이터베이스/Oracle 2022. 3. 17. 07:03

스프링부트에 Oracle 연동하고, 제대로 데이터까지 가져오는데, 콘솔에 에러는 아닌데 경고가 떠서 보기 안좋아서 뭐지 하고 찾아보았다.. 전체 경고 코드는 아래와 같았다. WARN 11904 --- [nio-8082-exec1] com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation. 그래서 해결법을 찾아보니 의외로 간단했다. 버전에 따른 Oracle name이 다른데 Oracle 9 이후로는 oracle.jdbc.OracleDriver 을 사용한단다. 기존 application.p..

728x90