레이블이 오라클동영상인 게시물을 표시합니다. 모든 게시물 표시
레이블이 오라클동영상인 게시물을 표시합니다. 모든 게시물 표시

2022년 1월 8일 토요일

오라클,PL/SQL,DBMS_SQL,동적SQL실습 테이블 생성, 멀티행 입력,BIND_ARRAY, EXECUTE, 오라클교육, 오라클학원, 오라클동영상,자바교육,자바학원,SQL교육, SQL학원

 오라클,PL/SQL,DBMS_SQL,동적SQL실습  테이블 생성, 멀티행 입력,BIND_ARRAY, EXECUTE, 오라클교육, 오라클학원, 오라클동영상,자바교육,자바학원,SQL교육, SQL학원


http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=730 


오라클,PL/SQL,DBMS_SQL,동적SQL실습 테이블 생성, 멀티행 입력,BIND_ARRAY, EXECUTE, 오라클교육, 오라클학

오라클,PL/SQL,DBMS_SQL,동적SQL실습 테이블 생성, 멀티행 입력,BIND_ARRAY, EXECUTE, 오라클교육, 오라클학원, 오라클동영상,자바교육,자바학원,SQL교육, SQL학원오라클 PL/SQLDBMS_SQL동적SQL실습테이블 생성,

ojc.asia

https://www.youtube.com/watch?v=XbRQfXxbyng&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=42 


https://www.youtube.com/watch?v=XbRQfXxbyng&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=42 


https://www.youtube.com/watch?v=tO4rkJAC7FM&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=40 


DBMS_SQL

동적SQL실습

테이블 생성, 멀티행 입력


실습





DBMS_SQL을 이용하여 DDL문(CREATE, DROP)을 실행하고 생성된 테이블에 5개의 행을 오라클의 TABLE TYPE(배열)에 데이터를 넣은 후 멀티 행을 바인딩 하여 INSERT를 한번에 실행(EXECUTE)하는 예제를 실습하면서 DBMS_SQL 패키지 사용법에 대해 이해합니다.

https://www.youtube.com/watch?v=oR_UKxk_HO4&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=39

[실습1 : DBMS_SQL 패키지를 이용하여 테이블 생성 및 멀티행 바인딩 후 한번에 입력 실습]


CREATE OR REPLACE PROCEDURE CREATE_INSERT_TEST

AS

    V_CURSOR        NUMBER := DBMS_SQL.OPEN_CURSOR();

    V_CNT           NUMBER;    

    V_ID_ARR        DBMS_SQL.NUMBER_TABLE;

    V_NAME_ARR      DBMS_SQL.VARCHAR2_TABLE;    

    V_SQL           VARCHAR2(200);

    V_AFFECTED_ROWS NUMBER;

BEGIN    

    -- TEST 테이블이 생성되어 있는지 딕셔너리 뷰에서 확인

    SELECT COUNT(*) INTO V_CNT FROM USER_TABLES WHERE TABLE_NAME = 'TEST';

    -- 이미 생성되어 있다면 삭제 후 생성

    IF V_CNT > 0 THEN

       DBMS_SQL.PARSE(V_CURSOR, 'drop table test', DBMS_SQL.NATIVE);

       DBMS_SQL.PARSE(V_CURSOR, 'create table test ( id number, name varchar2(20)) ', DBMS_SQL.NATIVE);

       

       DBMS_OUTPUT.PUT_LINE('##### 삭제 후 생성');

    -- 생성되어 있지 않은 경우 그냥 생성

    ELSE

       DBMS_SQL.PARSE(V_CURSOR, 'create table test ( id number, name varchar2(20)) ', DBMS_SQL.NATIVE);

       DBMS_OUTPUT.PUT_LINE('##### 생성');

    END IF;   

    

    -- 5건 데이터 입력 위해 배열에 데이터 생성

    FOR i IN 1..5 LOOP

        V_ID_ARR(i) := i;

        V_NAME_ARR(i) := i || '길동';

    END LOOP;

    

    -- SQL문장을 변수에 담기

    V_SQL := 'insert into test (id, name) values (:id, :name)';

    -- SQL구문 파싱

    DBMS_SQL.PARSE(V_CURSOR, V_SQL, DBMS_SQL.NATIVE);

    -- 바인드 변수 연결, 한건씩 연결시 BIND_VARIABLE 사용

    DBMS_SQL.BIND_ARRAY(V_CURSOR, 'id', V_ID_ARR);

    DBMS_SQL.BIND_ARRAY(V_CURSOR, 'name', V_NAME_ARR);

    -- SQL실행, 한번에 5건이 입력됨

    V_AFFECTED_ROWS := DBMS_SQL.EXECUTE(V_CURSOR);

    -- 입력건수 츨력

    DBMS_OUTPUT.PUT_LINE('INSERT 건수 : ' || V_AFFECTED_ROWS);

    

    DBMS_SQL.CLOSE_CURSOR(V_CURSOR);

EXCEPTION

   WHEN OTHERS THEN

      DBMS_OUTPUT.PUT_LINE(SQLERRM);

    IF DBMS_SQL.IS_OPEN(V_CURSOR) THEN

       DBMS_SQL.CLOSE_CURSOR(V_CURSOR);

    END IF;

END;


exec CREATE_INSERT_TEST;

select * from test;






#오라클,#PLSQL,#DBMS_SQL,#동적SQL,#BIND_ARRAY, #오라클교육, #오라클학원, #오라클동영상,#자바교육,#자바학원,#SQL교육, #SQL학원,오라클,PLSQL,DBMS_SQL,동적SQL,BIND_ARRAY, 오라클교육, 오라클학원, 오라클동영상,자바교육,자바학원,SQL교육, SQL학원

2022년 1월 7일 금요일

오라클 PLSQL 함수,팩토리얼, Factorial,함수실습, DBMS_OUTPUT,PUT_LINE,GET_LINE,ENABLE, DISABLE, SPOOL출력을파일,JAVA학원, ORACLE학원, JAVA교육, ORACLE교육

 




오라클 PLSQL 함수,팩토리얼, Factorial,함수실습, DBMS_OUTPUT,PUT_LINE,GET_LINE,ENABLE, DISABLE, SPOOL출력을파일,JAVA학원, ORACLE학원, JAVA교육, ORACLE교육


https://www.youtube.com/watch?v=Qf5u2u9Gt2Q&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=33





실습 : PL/SQL Factorial 구하는 함수 작성

PL/SQL 내부 및 외부에서 실행

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제


DBMS_OUTPUT 패키지

이론 / 실습







DBMS_OUTPUT 패키지는 PL/SQL 블록(BEGIN ~ END)이나 프로시저, 함수 등 SUB PROGRAM 및 패키지, 트리거등에서 메시지를 출력할 수 있는 기능을 제공하는데 메시지를 버퍼에 저장하고 버퍼에서 읽어오기 위한 기능을 제공하는 오라클 패키지 입니다.


이 패키지의 PUT 프로시저 및 PUT_LINE 프로시저를 사용하면 다른 트리거, 프로시저 또는 패키지에서 읽을 수 있는 정보를 버퍼에 저장할 수 있고, 별도의 PL/SQL 프로시저 또는 익명 블록에서 GET_LINE 프로시저 및 GET_LINES 프로시저를 호출하여 버퍼링된 정보를 표시할 수 있습니다.


ENABLE 프로시저를 호출하여 버퍼를 할당 하며(기본 20000 바이트), PUT, PUT LINE으로 버퍼에 메시지를 넣습니다. 버퍼 메시지의 각 라인은 라인끝(CARRIAGE RETURN/LINE FEED) 값을 가지고 있으며 CHR(13) || CHR(10)을 DBMS_OUT으로 출력하면 동일한 효과를 얻습니다.


PUT, PUT LINE으로 버퍼에 저장된 메시지는 GET_LINE, GET_LINES 으로 읽어 들일수 있으며 DBMS_OUTPUT.DISABLE 프로시저로 할당된 버퍼를 제거 합니다.


GET_LINES으로 읽을 때 라인을 읽어 들일 변수의 타입으로 DBMS_OUT 패키지에는 CHARARR 타입이 정의되어 있는데 형식은 다음과 같습니다.

  • 셀 병합


SQL*Plus의 경우 SQL 문 또는 익명 PL/SQL 호출을 실행한 후 GET_LINES를 호출합니다.



DBMS_OUTPUT.DISABLE;
메시지 출력을 비활성화
DBMS_OUTPUT.ENABLE(
buffer_size IN INTEGER DEFAULT 20000
);
메시지 출력 활성화, NULL을 입력하면 버퍼 사이즈는 무한
DBMS_OUTPUT.GET_LINE (
line OUT VARCHAR2,
status OUT INTEGER
);
버퍼에서 한 라인을 검색
메시지를 성공적으로 읽어 온 경우에는 0을 반환하고 그렇지 못한 경우에는 1을 반환.


DBMS_OUTPUT.GET_LINES (
lines OUT CHARARR,
numlines IN OUT INTEGER
);
버퍼에서 라인의 배열을 검색
DBMS_OUTPUT.NEW_LINE;
현재라인을 종료 하고 새 라인을 삽입
(라인의 종료를 마킹)
DBMS_OUTPUT.PUT(
item IN VARCHAR2
);
문자열을 출력 후 다음라인을 이동하지않고 대기
DBMS_OUTPUT.PUT_LINE(
item IN VARCHAR2
);
최대 32767 바이트로
버퍼에서 새롭게 문자열을 가진 한 라인을 삽입, 문자열을 출력 후 다음라인 이동


DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000); ⇒ 메시지 출력 활성화, NULL을 입력하면 buffer size는 무한


set serveroutput on

spool c:\logs\dbms.txt


BEGIN

-- 버퍼를 활성화, 기본버퍼 사이즈는 20000 바이트

dbms_output.enable;


dbms_output.put('굿 데이2!!');

dbms_output.put_line('안녕하세요~');

dbms_output.new_line();

dbms_output.put_line('즐거운 하루 되세요~');

--dbms_output.put('굿 데이!!');


dbms_output.put('굿 데이2!!');

dbms_output.put(CHR(13) || CHR(10));

dbms_output.put_line('안녕하세요2~');

--dbms_output.put('굿 데이2!!');

END;


create or replace procedure DBMS_TEST

is

begin

dbms_output.enable;

DBMS_OUTPUT.PUT_LINE('test1');

DBMS_OUTPUT.PUT_LINE('test2');

DBMS_OUTPUT.PUT_LINE('test3');

end;


declare

lines dbms_output.chararr;

num_lines number := 3;

begin

DBMS_TEST;


-- 아래 GET_LINE이하를 주석으로 막고 실행하면 프로시저에서 출력한 형태로 출력

dbms_output.get_lines(lines, num_lines);


FOR i IN 1..num_lines LOOP

dbms_output.put_line(i || '->' || lines(i));

END LOOP;

end;


declare

message VARCHAR(1024);

status INTEGER;

begin

DBMS_TEST;


DBMS_OUTPUT.GET_LINE(message, status);

DBMS_OUTPUT.PUT_LINE(message);

DBMS_OUTPUT.PUT_LINE(status);

end;


https://www.youtube.com/watch?v=UNWJDGNM-GY&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=35





#오라클, #DBMS_OUTPUT이란, #DBMS_OUTPUT, #PUT_LINE, #GET_LINE, #오라클프로시저, #오라클교육, #SQL교육, #자바교육, #오라클학원, #자바학원, #SQL학원, #오라클동영상, 오라클, DBMS_OUTPUT이란, DBMS_OUTPUT, PUT_LINE, GET_LINE, 오라클프로시저, 오라클교육, SQL교육, 자바교육, 오라클학원, 자바학원, SQL학원, 오라클동영상

#오라클, #PLSQL, #팩토리얼, #Factorial, #오라클함수, #함수실행, #바인드변수, #호스트변수, #오라클교육, #SQL교육, #오라클학원, #SQL학원, #자바교육, #자바학원, 오라클, PLSQL, 팩토리얼, Factorial, 오라클함수, 함수실행, 바인드변수, 호스트변수, 오라클교육, SQL교육, 오라클학원, SQL학원, 자바교육, 자바학원



(ORACLE동영상)오라클 DBMS_OUTPUT이란?, PUT_LINE, GET_LINE, SPOOL 출력을 파일로, ENABLE, DISABLE, 프로시저작성실습, 자바학원, 오라클학원, 자바교육, 오라클교육, SQL교육, SQL학원

 (ORACLE동영상)오라클 DBMS_OUTPUT이란?, PUT_LINE, GET_LINE, SPOOL 출력을 파일로, ENABLE, DISABLE, 프로시저작성실습, 자바학원, 오라클학원, 자바교육, 오라클교육, SQL교육, SQL학원


http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=727 


오라클 DBMS_OUTPUT이란?, PUT_LINE, GET_LINE, SPOOL 출력을 파일로, ENABLE, DISABLE, 프로시저작성실습

오라클 DBMS_OUTPUT이란?, PUT_LINE, GET_LINE, SPOOL 출력을 파일로, ENABLE, DISABLE, 프로시저작성실습오라클 PL/SQLDBMS_OUTPUT 패키지이론 / 실습DBMS_OUTPUT 패키지는 PL/SQL 블록(BEGIN ~ END)이나 프로시저, 함수 등 SUB

ojc.asia

https://www.youtube.com/watch?v=fYfTQruthLA&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=37

DBMS_OUTPUT 패키지는 PL/SQL 블록(BEGIN ~ END)이나 프로시저, 함수 등 SUB PROGRAM 및 패키지, 트리거등에서 메시지를 출력할 수  있는 기능을 제공하는데 메시지를 버퍼에 저장하고 버퍼에서 읽어오기 위한 기능을 제공하는 오라클 패키지 입니다.


https://www.youtube.com/watch?v=-2CzUYAmRvk&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=5 


이 패키지의 PUT 프로시저 및 PUT_LINE 프로시저를 사용하면 다른 트리거, 프로시저 또는 패키지에서 읽을 수 있는 정보를 버퍼에 저장할 수 있고, 별도의 PL/SQL 프로시저 또는 익명 블록에서 GET_LINE 프로시저 및 GET_LINES 프로시저를 호출하여 버퍼링된 정보를 표시할 수 있습니다.


https://www.youtube.com/watch?v=9cS-bMTbkLo&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=6 


ENABLE 프로시저를 호출하여 버퍼를 할당 하며(기본 20000 바이트), PUT, PUT LINE으로 버퍼에 메시지를 넣습니다. 버퍼 메시지의 각 라인은 라인끝(CARRIAGE RETURN/LINE FEED) 값을 가지고 있으며 CHR(13) || CHR(10)을 DBMS_OUT으로 출력하면 동일한 효과를 얻습니다.


PUT, PUT LINE으로 버퍼에 저장된 메시지는 GET_LINE, GET_LINES 으로 읽어 들일수 있으며 DBMS_OUTPUT.DISABLE 프로시저로 할당된 버퍼를 제거 합니다.


GET_LINES으로 읽을 때 라인을 읽어 들일 변수의 타입으로 DBMS_OUT 패키지에는 CHARARR 타입이 정의되어 있는데 형식은 다음과 같습니다.

TYPE CHARARR IS TABLE OF VARCHAR2(32767);


SQL*Plus의 경우  SQL 문 또는 익명 PL/SQL 호출을 실행한 후 GET_LINES를 호출합니다.



DBMS_OUTPUT.DISABLE;
메시지 출력을 비활성화
DBMS_OUTPUT.ENABLE(
   buffer_size IN INTEGER DEFAULT 20000
);
메시지 출력 활성화, NULL을 입력하면 버퍼 사이즈는 무한
DBMS_OUTPUT.GET_LINE (
   line OUT VARCHAR2, 
   status OUT INTEGER
);
버퍼에서 한 라인을 검색
메시지를 성공적으로 읽어 온 경우에는 0을 반환하고 그렇지 못한 경우에는 1을 반환.

DBMS_OUTPUT.GET_LINES (
   lines OUT CHARARR, 
   numlines IN OUT INTEGER
);
버퍼에서 라인의 배열을 검색
DBMS_OUTPUT.NEW_LINE;
현재라인을 종료 하고 새 라인을 삽입
(라인의 종료를 마킹)
DBMS_OUTPUT.PUT(
   item IN VARCHAR2
);
문자열을 출력 후 다음라인을 이동하지않고 대기
DBMS_OUTPUT.PUT_LINE(
   item IN VARCHAR2
);
최대 32767 바이트로
버퍼에서 새롭게 문자열을 가진  한 라인을 삽입, 문자열을 출력 후 다음라인 이동



DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000); ⇒ 메시지 출력 활성화, NULL을 입력하면 buffer size는 무한


set serveroutput on

spool c:\logs\dbms.txt


BEGIN 

   -- 버퍼를 활성화, 기본버퍼 사이즈는 20000 바이트

   dbms_output.enable;    

   

   dbms_output.put('굿 데이2!!');    

   dbms_output.put_line('안녕하세요~'); 

   dbms_output.new_line();

   dbms_output.put_line('즐거운 하루 되세요~'); 

   --dbms_output.put('굿 데이!!');  

   

   dbms_output.put('굿 데이2!!'); 

   dbms_output.put(CHR(13) || CHR(10));

   dbms_output.put_line('안녕하세요2~'); 

   --dbms_output.put('굿 데이2!!'); 

END;   


create or replace procedure DBMS_TEST

is

begin

    dbms_output.enable;

    DBMS_OUTPUT.PUT_LINE('test1');

    DBMS_OUTPUT.PUT_LINE('test2');

    DBMS_OUTPUT.PUT_LINE('test3');

end;


declare

   lines dbms_output.chararr; 

   num_lines number := 3; 

begin

   DBMS_TEST;

   

   -- 아래 GET_LINE이하를 주석으로 막고 실행하면 프로시저에서 출력한 형태로 출력

   dbms_output.get_lines(lines, num_lines); 

   

   FOR i IN 1..num_lines LOOP 

      dbms_output.put_line(i || '->' || lines(i)); 

   END LOOP; 

end;


declare

    message VARCHAR(1024);

    status INTEGER;

begin

   DBMS_TEST;

   

   DBMS_OUTPUT.GET_LINE(message, status);

   DBMS_OUTPUT.PUT_LINE(message);

   DBMS_OUTPUT.PUT_LINE(status);

end;



#오라클, #DBMS_OUTPUT이란, #DBMS_OUTPUT, #PUT_LINE, #GET_LINE, #오라클프로시저, #오라클교육, #SQL교육, #자바교육, #오라클학원, #자바학원, #SQL학원, #오라클동영상, 오라클, DBMS_OUTPUT이란, DBMS_OUTPUT, PUT_LINE, GET_LINE, 오라클프로시저, 오라클교육, SQL교육, 자바교육, 오라클학원, 자바학원, SQL학원, 오라클동영상

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...