336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

 

//테스트용 테이블생성

CREATE TABLE testTable(
    NUM NUMBER PRIMARY KEY,
    NAME VARCHAR2(30) NOT NULL
);

 

select * from testTable

 

INSERT INTO testTable VALUES(2, 'test2')

 

//밑에 있는 함수 호출

SELECT numadd() FROM DUAL

 

//함수 구문 (into를 이용해서 쿼리에 있는 것을 변수에 넣었습니다

CREATE OR REPLACE FUNCTION numAdd
RETURN NUMBER IS //NUMBER형식 리턴
MAXNUM testTable.NUM%TYPE; //testTable의 NUM칼럼 형식 변수
F_NUM NUMBER(4);                 //숫자4자리
F_NAME VARCHAR(30);            //문자 30(한글2, 영어1)
CURSOR C1                          //커서를 넣습니다. 넣는 기준은 밑에 쿼리이고, F_NUM, F_NAME형식입니다.
IS
    SELECT NUM, NAME INTO F_NUM, F_NAME FROM testTable;

BEGIN
    SELECT NULLIF(MAX(NUM)+1, 1) INTO MAXNUM FROM testTable;  //NULLIF( MYSQL 에서는 IFNULL입니다.)
    
    DBMS_OUTPUT.PUT_LINE(MAXNUM||'check'); //문자열
    OPEN C1; //CURSOR 사용준비
    LOOP  //돌립니다.
        FETCH C1 INTO F_NUM, F_NAME; //1개씩 가져옵니다 각각 F_NUM, F_NAME에 넣습니다.
        EXIT WHEN C1%NOTFOUND;  //나오는 조건은 C1을 찾을수 없으면 나옵니다.
        DBMS_OUTPUT.PUT_LINE(F_NUM || F_NAME||'dasdfasdf');
    END LOOP;  //루프문의 끝입니다.
    return MAXNUM;  //리턴
END numAdd;  //함수끝
/

 

---------------------------------------------------------------------- 

//해당 쪽에 문자열을 붙여주는 프로시저

CREATE OR REPLACE PROCEDURE testA

IS
BEGIN
    UPDATE testTable
    SET name = name || '2';

COMMIT;

END testA;
/

 

//프로시저 호출하기

EXECUTE testA();

 

----------------------------------------------------------------------

//dbms_output.put_line주석 보여주기

SET SERVEROUTPUT ON;

 

//간단한 block

begin
    dbms_output.put_line('확인');
end;
/

+ Recent posts