전체 글 74

07_커서

1. 묵시적(암시적) 커서- 암시적 커서는 SQL문장이 처리되는 곳에 대한 익명의 주소이다.- 실행되는 모든 SQL문장은 암시적인 커서가 생성되며, 커서 속성을 사용 할 수 있다. 2. 명시적 커서- 명시적 커서는 커서를 선언해서 사용 하는 방법 이다. CURSOR [커서이름] IS [실행할 문장] - 커서에는 보통 한 개 이상의 데이터가 담기게 된다- 이때 데이터를 하나씩 빼 내기 위해서는 OPEN, FETCH, CLOSE의 과정을 거친다. 3. FOR IN LOOP문- FOR LOOP문을 활용한 커서- FOR IN LOOP문을 이용하면 OPEN, FETCH, CLOSE가 자동 실행 된다. 예시1 번을 FOR IN LOOP로 수정한 소스코드이다. OPEN FETCH CLOSE가 사라졋고 LOOP문의 E..

Old/Procedure 2018.10.11

02.유저생성과 권한부여

SQL Developer을 실행시키면 처음에 SYSTEM(admin)이 있는데 이곳에서 유저를 생성하거나 권한을 부여할 수 있다. 유저의 생성이나 권한 부여는 DBA권한을 갖고 있는 유저 또한 생성이나 권한 부여가 가능하다. 1.유저 생성 방법 CREATE USER [유저이름] IDENTIFIED BY [비밀번호]; 실제로 SQL Developer에서 쿼리문을 작성한 모습이다. 만약 권한이 없는 유저가 계정을 생성하려고 하면 위와 같은 오류가 발생한다. 해결 방법은 admin이나 DBA 권한이 있는 계정으로 권한을 부여하면 해결 된다. 2. 생성된 유저 비밀번호 변경 방법 ALTER USER [유저이름] IDENTIFIED BY [새로운비밀번호]; 마찬가지로 권한을 갖고 있는 계정으로 실행시켜야 실행이 ..

Old/Oracle 2018.10.11

01.오라클 설치

오라클 설치하는 법에 대해서 알아보자 https://www.oracle.com/kr/index.Html 오라클 홈페이지 URL이다. 홈페이지에 접속하면 메뉴를 열고 다운받는 곳을 찾아야하는데 오라클은 홈페이지를 개편할때 마다 다운로드 위치가 바뀌기 때문에 필요할 때 마다 찾아야 한다. 2018년 10월을 기준으로 메뉴 -> 개발자 -> 다운로드 -> DataBase를 누르면 다운 받을 수 있는 곳으로 이동 할 수 있다. 다운 받기전 오라클 가입은 필수이다. 여기서 다운받을 버전은 11g Express Edition이다. 체크한 버전을 클릭후 다운 받으면 설치 할 수 있다. 설치를 완료한 후 설정할 것이 있다. 내컴퓨터 우클릭 -> 관리 -> 서비스 및 응용 프로그램 -> 서비스 에서 OracleServi..

Old/Oracle 2018.10.10

04_활용

SELECT * FROM emp; SET SERVEROUTPUT ON; --데이터 입력 프로시저CREATE OR REPLACE PROCEDURE insert_data( v_ename IN emp.ename%TYPE, v_job IN emp.job%TYPE, v_deptno IN emp.deptno%TYPE) IS BEGIN INSERT INTO emp (ename, job, deptno) VALUES (v_ename, v_job, v_deptno); DBMS_OUTPUT.put_line('데이터 입력 성공'); END;/ EXEC insert_data('kim','staff',3); 설명 : insert_data라는 프로시저를 만들고 이 프로시저는 3개의 매개변수를 입력 받아서 Table에 데이터를 추가..

Old/Procedure 2018.10.10

오라클 오류 목록

ORA-01422 : 변수명과 컬럼이름을 같게 했더니 이런 오류가 나왔다 SELECT salary INTO return_salary FROM employees e WHERE e.emp_no = emp_no; 변수명을 변경했더니 해결. ORA-01031: insufficient privileges : DBA 권한이 없는 계정으로 새로운 유저를 생성하려고 했더니 발생한 오류이다. admin이나 권한이 있는 계정으로 권한을 부여해서 실행시키면 해결된다. ORA-00942: table or view does not exist : 일반 계정에서 SELECT * FROM DBA_USERS; 쿼리문을 실행시키니 오류가 났다. 검색 결과 발생원인은 3가지 정도가 있는데 1. 데이터베이스의 연결이 안되 있다 2. 테이블..

Old/Oracle 2018.10.10

03_Function

1.함수 사용법프로시저에는 리턴 값이 없었지만 함수에는 리턴 값을 갖을 수 있다. CREATE OR REPLACE FUNCTION hello RETURN VARCHAR2 IS msg VARCHAR2(20); BEGIN msg:='hello world'; RETURN msg; END;/ VARIABLE message VARCHAR2(20);EXEC :message := hello;PRINT message; hello라는 함수를 만들어서 리턴값을 message에 저장한 후 출력하는 모습이다. 사원번호를 받아서 해당 사원의 급여를 출력하기 CREATE OR REPLACE FUNCTION print_salary(empno IN employees.emp_no%TYPE) RETURN employees.salary%..

Old/Procedure 2018.10.10

02_Scala

1.일반 단일 데이터 타입변수명 [CONSTANT] [DATA_TYPE] [NOT NULL] := 초기값; DECLARE var_emp_no NUMBER(3,0); var_emp_name VARCHAR2(40); var_emp_grade CHAR(1) := 'A'; BEGIN var_emp_no :=123; var_emp_name :='Kim'; DBMS_OUTPUT.PUT_LINE('사원 번호 : '||var_emp_no); DBMS_OUTPUT.PUT_LINE('사원 이름 : '||var_emp_name); DBMS_OUTPUT.PUT_LINE('사원 등급 : '||var_emp_grade); END;/ 일반 데이터 사용 예시를 익명 프로시저로 나타냄. DECLARE var_emp_no NUMBER(..

Old/Procedure 2018.10.10

JAVA 추상클래스(abstract)

추상클래스란 설계도에 비유한다면 미완성 설계도에 비유할 수 있다. 이뜻은 아직 완성되지 않은 부분이 있다는 뜻인데 완성되지 않은 부분은 메서드이고 이렇게 미완성으로 남겨둔 메서드를 추상메서드라고 한다. 즉 일부러 미완성인체로 남겨둔 메서드는 추상메서드이고 추상메서드를 갖고 있는 클레스를 추상 클레스라고 한다. 추상클레스와 추상메서드의 사용법이다. 둘 다 abstract를 붙여주고 추상 메서드의 경우에는 코드블럭을 사용하지 않는다. 그렇다면 추상메서드를 사용하는 이유는 무엇일까? 추상클레스의 사용 목적은 추상클레스를 상속받는 자식클레스의 틀을 만들어주는 것 이다. 추상메서드를 포함하는 추상 클레스는 위의 보기와 같이 객체화가 불가능하다. 따라서 추상클레스를 상속받는 클레스는 반드시 추상메서드를 구체화해야 ..

Old/JAVA 2018.09.04