<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Riz.Dev</title>
    <link>https://rizdev.tistory.com/</link>
    <description>Riz.Dev
처음부터 다시 시작하는 개발
rizt.dev@gmail.com
https://github.com/riz-jeong</description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 08:31:10 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Riz.Dev</managingEditor>
    <image>
      <title>Riz.Dev</title>
      <url>https://tistory1.daumcdn.net/tistory/6219317/attach/c8cb5cdfdbf5475bb0b85ea022966f6b</url>
      <link>https://rizdev.tistory.com</link>
    </image>
    <item>
      <title>PLSQL Named System Exceptions</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-Named-System-Exceptions</link>
      <description>&lt;h1&gt;Oracle / PLSQL : 명명된 시스템 예외&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle/PLSQL에서 명명된 시스템 예외를 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Oracle에서 명명된 시스템 예외란 무엇인가요?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명명된 시스템 예외는 PL/SQL에서 이름을 지정한 예외입니다. 이러한 예외는 PL/SQL의 STANDARD 패키지에 이름이 지정되며 프로그래머가 정의할 필요가 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에는 이미 다음과 같이 명명된 표준 예외 집합이 있습니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;Oracle 예외 이름&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;Oracle 오류&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;DUP_VAL_ON_INDEX&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-00001&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;고유 인덱스에 의해 제한된 필드에 중복 값을 생성하는 INSERT 또는 UPDATE 문을 실행하려고 했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;TIMEOUT_ON_RESOURCE&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-00051&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;리소스를 기다리는 동안 시간이 초과되었습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;TRANSACTION_BACKED_OUT&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-00061&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;트랜잭션의 원격 부분이 롤백되었습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;INVALID_CURSOR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01001&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;아직 존재하지 않는 커서를 참조하려고 했습니다. 커서를 열기 전에 커서 가져오기 또는 커서 닫기를 실행했기 때문에 이런 일이 발생했을 수 있습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;NOT_LOGGED_ON&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01012&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;로그인하기 전에 Oracle에 대한 호출을 실행하려고 했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;LOGIN_DENIED&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01017&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;잘못된 사용자 이름/비밀번호 조합으로 Oracle에 로그인하려고 했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;NO_DATA_FOUND&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01403&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;다음 중 하나를 시도했습니다&lt;br /&gt;1. SELECT INTO 문을 실행했지만 행이 반환되지 않았습니다.&lt;br /&gt;2. 테이블에서 초기화되지 않은 행을 참조했습니다.&lt;br /&gt;3. UTL_FILE 패키지로 파일 끝을 지나서 읽었습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;TOO_MANY_ROWS&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01422&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SELECT INTO 문을 실행하려고 했는데 둘 이상의 행이 반환되었습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;ZERO_DIVIDE&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01476&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;숫자를 0으로 나누려고 했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;INVALID_NUMBER&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-01722&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;문자열을 숫자로 변환하는 SQL 문을 실행하려고 했지만 실패했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;STORAGE_ERROR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-06500&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;메모리가 부족하거나 메모리가 손상되었습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;PROGRAM_ERROR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-06501&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;내부 문제가 발생했기 때문에 일반적인 &quot;Oracle 지원팀에 문의&quot; 메시지입니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;VALUE_ERROR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-06502&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;작업을 수행하려고 했는데 숫자 또는 문자 데이터의 변환, 잘림 또는 잘못된 제약 조건에 오류가 발생했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;CURSOR_ALREADY_OPEN&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORA-06511&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;이미 열려 있는 커서를 열려고 했습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로시저와 함수 모두에서 명명된 시스템 예외의 구문을 살펴보겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;프로시저 구문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로시저에서 명명된 시스템 예외의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;oxygene&quot;&gt;&lt;code&gt;CREATE [OR REPLACE] PROCEDURE procedure_name
   [ (parameter [,parameter]) ]
IS
   [declaration_section]

BEGIN
   executable_section

EXCEPTION
   WHEN exception_name1 THEN
      [statements]

   WHEN exception_name2 THEN
      [statements]

   WHEN exception_name_n THEN
      [statements]

   WHEN OTHERS THEN
      [statements]

END [procedure_name];&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;함수 구문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수에서 명명된 시스템 예외의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;CREATE [OR REPLACE] FUNCTION function_name
   [ (parameter [,parameter]) ]
   RETURN return_datatype
IS | AS
   [declaration_section]

BEGIN
   executable_section

EXCEPTION
   WHEN exception_name1 THEN
      [statements]

   WHEN exception_name2 THEN
      [statements]

   WHEN exception_name_n THEN
      [statements]

   WHEN OTHERS THEN
      [statements]

END [function_name];&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 명명된 시스템 예외를 사용하는 프로시저의 예입니다.&lt;/p&gt;
&lt;pre class=&quot;oxygene&quot;&gt;&lt;code&gt;CREATE OR REPLACE PROCEDURE add_new_supplier
   (supplier_id_in IN NUMBER, supplier_name_in IN VARCHAR2)
IS

BEGIN
   INSERT INTO suppliers (supplier_id, supplier_name )
   VALUES ( supplier_id_in, supplier_name_in );

EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN
      raise_application_error (-20001,'You have tried to insert a duplicate supplier_id.');

   WHEN OTHERS THEN
      raise_application_error (-20002,'An error has occurred inserting a supplier.');

END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예제에서는 DUP_VAL_ON_INDEX라는 명명된 시스템 예외를 트래핑하고 있습니다. 또한 나머지 모든 예외를 트래핑하기 위해 WHEN OTHERS 절을 사용하고 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-CURSOR-FOR-LOOP&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-Named-Programmer-Defined-Exceptions&quot;&gt;다음 : Named Programmer-Defined Exception &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>PLSQL</category>
      <category>System Exceptions</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/181</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-Named-System-Exceptions#entry181comment</comments>
      <pubDate>Wed, 28 Jun 2023 23:32:37 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL CURSOR FOR LOOP</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-CURSOR-FOR-LOOP</link>
      <description>&lt;h1&gt;Oracle / PLSQL : CURSOR FOR LOOP&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 CURSOR FOR LOOP를 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커서 내의 모든 레코드를 가져와서 처리하려는 경우 CURSOR FOR LOOP를 사용할 수 있습니다. 커서 내의 모든 레코드를 가져오면 CURSOR FOR LOOP가 종료됩니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 CURSOR FOR LOOP의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;FOR record_index in cursor_name
LOOP
   {...statements...}
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;record_index&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;레코드의 색인입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;cursor_name&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;레코드를 가져오려는 커서의 이름입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;statements&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 패스를 실행할 코드 문은 CURSOR FOR LOOP를 통과합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 CURSOR FOR LOOP를 사용하는 함수의 예입니다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;CREATE OR REPLACE Function TotalIncome
   ( name_in IN varchar2 )
   RETURN varchar2
IS
   total_val number(6);

   cursor c1 is
     SELECT monthly_income
     FROM employees
     WHERE name = name_in;

BEGIN

   total_val := 0;

   FOR employee_rec in c1
   LOOP
      total_val := total_val + employee_rec.monthly_income;
   END LOOP;

   RETURN total_val;

END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예제에서는 c1이라는 커서를 만들었습니다. 커서 c1에서 모든 레코드를 가져온 후 커서 FOR 루프가 종료됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-GOTO&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-Named-System-Exceptions&quot;&gt;다음 : Named System Exceptions &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>cursor</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/180</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-CURSOR-FOR-LOOP#entry180comment</comments>
      <pubDate>Wed, 28 Jun 2023 23:30:36 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL GOTO</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-GOTO</link>
      <description>&lt;h1&gt;Oracle / PLSQL : GOTO 문&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;GOTO 문&lt;/b&gt;을 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GOTO 문은 코드가 GOTO 문 뒤에 있는 레이블로 분기되도록 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL의 GOTO 문 구문은 GOTO 문과 레이블 선언의 두 부분으로 구성됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;GOTO 문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GOTO 문은 GOTO 키워드와 label_name으로 구성됩니다.&lt;/p&gt;
&lt;pre class=&quot;abnf&quot;&gt;&lt;code&gt;GOTO label_name;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;레이블 선언&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레이블 선언은 &amp;lt;&amp;lt; &amp;gt;&amp;gt;로 캡슐화된 label_name과 그 뒤에 실행할 하나 이상의 문으로 구성됩니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;&amp;lt;&amp;lt;label_name&amp;gt;&amp;gt;
 {...statements...}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;label_name은 코드 범위 내에서 고유해야 합니다.&lt;/li&gt;
&lt;li&gt;레이블 선언 뒤에 실행할 문이 하나 이상 있어야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GOTO 문을 사용하는 Oracle 예제를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;CREATE OR REPLACE Function FindCourse
   ( name_in IN varchar2 )
   RETURN number
IS
   cnumber number;

   CURSOR c1
   IS
     SELECT MAX(course_number)
     FROM courses_tbl
     WHERE course_name = name_in;

BEGIN

   open c1;
   fetch c1 into cnumber;

   IF c1%notfound then
      GOTO default_number;

   ELSE
      GOTO increment_number;
   END IF;

&amp;lt;&amp;lt;default_number&amp;gt;&amp;gt;
   cnumber := 0;

&amp;lt;&amp;lt;increment_number&amp;gt;&amp;gt;
   cnumber := cnumber + 1;

   close c1;

RETURN cnumber;

END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 GOTO 예제에서는 두 개의 GOTO 문을 만들었습니다. 첫 번째 문은 default_number, 두 번째 문은 increment_number라고 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-REPEAT-UNTIL-LOOP&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-CURSOR-FOR-LOOP&quot;&gt;다음 : CURSOR FOR LOOP &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>Goto</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/179</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-GOTO#entry179comment</comments>
      <pubDate>Fri, 23 Jun 2023 23:11:59 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL REPEAT UNTIL LOOP</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-REPEAT-UNTIL-LOOP</link>
      <description>&lt;h1&gt;Oracle / PLSQL : REPEAT UNTIL LOOP&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;REPEAT UNTIL LOOP&lt;/b&gt;를 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에는 REPEAT UNTIL LOOP가 없지만 LOOP 문을 사용하여 에뮬레이션할 수 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 REPEAT UNTIL LOOP를 에뮬레이트하는 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;LOOP

   {...statements...}

   EXIT [ WHEN boolean_condition ];

END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;statements&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프를 통과할 때마다 실행할 코드 문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;boolean_condition&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선택 사항입니다. 루프를 종료하는 조건입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반복문을 몇 번 실행할지 모르는 경우 에뮬레이트된 REPEAT UNTIL LOOP를 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;REPEAT UNTIL LOOP는 특정 조건이 충족되면 종료됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 REPEAT UNTIL LOOP를 에뮬레이트하는 방법의 예를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;LOOP
   monthly_value := daily_value * 31;
   EXIT WHEN monthly_value &amp;gt; 4000;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예제에서는 monthly_value가 4000보다 클 때까지 루프를 반복하고 싶으므로 EXIT WHEN 문을 사용합니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;EXIT WHEN monthly_value &amp;gt; 4000;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 monthly_value이 4000을 초과할 때까지 LOOP가 반복됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-LOOP&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-GOTO&quot;&gt;다음 : GOTO &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>PLSQL</category>
      <category>REPEAT UNTIL LOOP</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/178</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-REPEAT-UNTIL-LOOP#entry178comment</comments>
      <pubDate>Thu, 22 Jun 2023 13:52:37 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL LOOP</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-LOOP</link>
      <description>&lt;h1&gt;Oracle / PLSQL : LOOP 문&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;LOOP 문&lt;/b&gt;을 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서는 반복문을 몇 번 실행할지 확실하지 않고 반복문을 적어도 한 번은 실행해야 할 때 LOOP 문을 사용합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 LOOP 문의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;LOOP
   {...statements...}
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;statements&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프를 통과할 때마다 실행할 코드 문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반복문을 몇 번 실행할지 확실하지 않은 경우 LOOP 문을 사용합니다.&lt;/li&gt;
&lt;li&gt;LOOP 문은 EXIT 문으로 종료하거나 TRUE로 평가되는 EXIT WHEN 문을 만나면 종료할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle의 LOOP 예제를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;LOOP
   monthly_value := daily_value * 31;
   EXIT WHEN monthly_value &amp;gt; 4000;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 LOOP 예제에서는 monthly_value가 4000을 초과하면 LOOP가 종료됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-EXIT&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-REPEAT-UNTIL-LOOP&quot;&gt;다음 : REPEAT UNTIL LOOP &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>loop</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/177</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-LOOP#entry177comment</comments>
      <pubDate>Thu, 22 Jun 2023 13:50:18 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL EXIT</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-EXIT</link>
      <description>&lt;h1&gt;Oracle / PLSQL : EXIT 문&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;EXIT 문&lt;/b&gt;을 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 EXIT 문은 LOOP 문을 종료하는 데 가장 일반적으로 사용됩니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 EXIT 문의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;EXIT [WHEN boolean_condition];&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;boolean_condition&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선택 사항입니다. 루프를 종료하는 조건입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL의 EXIT 예제를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;LOOP
   monthly_value := daily_value * 31;
   EXIT WHEN monthly_value &amp;gt; 4000;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예제에서는 monthly_value이 4000을 초과하면 LOOP가 종료됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-FOR-LOOP&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-LOOP&quot;&gt;다음 : LOOP &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>EXIT</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/176</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-EXIT#entry176comment</comments>
      <pubDate>Tue, 20 Jun 2023 16:12:57 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL FOR LOOP</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-FOR-LOOP</link>
      <description>&lt;h1&gt;Oracle / PLSQL : FOR LOOP&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;FOR LOOP&lt;/b&gt;를 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 FOR LOOP를 사용하면 정해진 횟수 동안 코드를 반복적으로 실행할 수 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 FOR 루프의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;FOR loop_counter IN [REVERSE] lowest_number..highest_number
LOOP
   {...statements...}
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;loop_counter&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프 카운터 변수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;REVERSE&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선택 사항입니다. 지정하면 루프 카운터가 역으로 카운트됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;lowest_number&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;loop_counter의 시작 값입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;highest_number&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;loop_counter의 종료 값입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;statements&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프를 통과할 때마다 실행할 코드 문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프 본문을 정해진 횟수만큼 실행하려는 경우 FOR LOOP를 사용합니다.&lt;/li&gt;
&lt;li&gt;REVERSE를 지정하면 가장 높은 번호가 loop_counter의 시작 값이 되고 가장 낮은 번호가 loop_counter의 끝 값이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 FOR LOOP를 사용하는 방법의 예를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;gams&quot;&gt;&lt;code&gt;FOR Lcntr IN 1..20
LOOP
   LCalc := Lcntr * 31;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 FOR LOOP 예제는 20번 반복됩니다. Lcntr이라는 카운터는 1에서 시작하여 20에서 끝납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;REVERSE 수정자를 사용하여 FOR LOOP를 역순으로 실행할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;FOR Lcntr IN REVERSE 1..15
LOOP
   LCalc := Lcntr * 31;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 FOR LOOP 예제는 15번 반복됩니다. 그러나 REVERSE가 지정되었으므로 Lcntr이라는 카운터는 15에서 시작하여 1에서 종료됩니다(거꾸로 반복).&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-WHILE-LOOP&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-EXIT&quot;&gt;다음 : EXIT &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>for</category>
      <category>loop</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/175</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-FOR-LOOP#entry175comment</comments>
      <pubDate>Sun, 18 Jun 2023 17:37:01 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL WHILE LOOP</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-WHILE-LOOP</link>
      <description>&lt;h1&gt;Oracle / PLSQL : WHILE LOOP&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;WHILE LOOP&lt;/b&gt;를 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서는 루프 본문을 몇 번 실행할지 확실하지 않고 루프 본문이 한 번도 실행되지 않을 수 있는 경우 WHILE LOOP를 사용합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 WHILE LOOP의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;WHILE condition
LOOP
   {...statements...}
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매개변수 및 인수&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;condition(조건)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건은 루프를 통과할 때마다 테스트됩니다. 조건이 TRUE로 평가되면 루프 본문이 실행됩니다. 조건이 FALSE로 평가되면 루프가 종료됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;statements&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프를 통과할 때마다 실행할 코드 문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루프 본문을 몇 번 실행할지 확실하지 않은 경우 WHILE LOOP 문을 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;WHILE 조건은 루프에 들어가기 전에 평가되므로 루프 본문이 한 번도 실행되지 않을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle의 WHILE LOOP 예제를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;WHILE monthly_value &amp;lt;= 4000
LOOP
   monthly_value := daily_value * 31;
END LOOP;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 WHILE LOOP 예제에서는 다음과 같이 지정된 대로 monthly_value가 4000을 초과하면 루프가 종료됩니다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;WHILE monthly_value &amp;lt;= 4000&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;monthly_value &amp;lt;= 4000인 동안 WHILE 루프는 계속됩니다. 그리고 monthly_value가 4000을 초과하면 루프가 종료됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-IF-THEN-ELSE&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-FOR-LOOP&quot;&gt;다음 : FOR LOOP &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <category>While Loop</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/174</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-WHILE-LOOP#entry174comment</comments>
      <pubDate>Tue, 13 Jun 2023 22:13:28 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL IF-THEN-ELSE</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-IF-THEN-ELSE</link>
      <description>&lt;h1&gt;Oracle / PLSQL : IF-THEN-ELSE 문&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle에서 &lt;b&gt;IF-THEN-ELSE 문&lt;/b&gt;을 사용하는 방법을 설명합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 IF-THEN-ELSE 문은 조건이 TRUE일 때 코드를 실행하거나 조건이 FALSE로 평가되는 경우 다른 코드를 실행하는 데 사용됩니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IF-THEN-ELSE 문에는 다양한 구문이 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문 (IF-THEN)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 IF-THEN의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;IF condition THEN
   {...statements to execute when condition is TRUE...}
END IF;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건이 TRUE일 때만 문을 실행하려는 경우 IF-THEN 구문을 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문 (IF-THEN-ELSE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 IF-THEN-ELSE의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;IF condition THEN
   {...statements to execute when condition is TRUE...}

ELSE
   {...statements to execute when condition is FALSE...}

END IF;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건이 TRUE일 때 한 문 집합을 실행하거나 조건이 FALSE일 때 다른 문 집합을 실행하려는 경우 IF-THEN-ELSE 구문을 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문 (IF-THEN-ELSIF)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 IF-THEN-ELSIF의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;smali&quot;&gt;&lt;code&gt;IF condition1 THEN
   {...statements to execute when condition1 is TRUE...}

ELSIF condition2 THEN
   {...statements to execute when condition1 is FALSE and condition2 is TRUE...}

END IF;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;condition1이 TRUE일 때 한 문 집합을 실행하거나 condition2가 TRUE일 때 다른 문 집합을 실행하려는 경우 IF-THEN-ELSIF 구문을 사용할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문 (IF-THEN-ELSIF-ELSE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle/PLSQL에서 IF-THEN-ELSIF-ELSE의 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;smali&quot;&gt;&lt;code&gt;IF condition1 THEN
   {...statements to execute when condition1 is TRUE...}

ELSIF condition2 THEN
   {...statements to execute when condition1 is FALSE and condition2 is TRUE...}

ELSE
   {...statements to execute when both condition1 and condition2 are FALSE...}

END IF;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;condition1이 TRUE일 때 한 문 집합을 실행하고, condition2가 TRUE일 때 다른 문 집합을 실행하거나, 이전 조건이 모두 FALSE일 때 다른 문 집합을 실행하려는 경우 IF-THEN-ELSIF-ELSE 구문을 사용할 수 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건이 TRUE로 확인되면 IF-THEN-ELSE 문은 해당 코드를 실행하고 조건을 더 이상 평가하지 않습니다.&lt;/li&gt;
&lt;li&gt;조건이 충족되지 않으면 IF-THEN-ELSE 문의 ELSE 부분이 실행됩니다.&lt;/li&gt;
&lt;li&gt;ELSIF 및 ELSE 부분은 선택 사항이라는 점에 유의하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 Oracle 함수에서 IF-THEN-ELSE 문을 사용하는 예입니다.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;CREATE OR REPLACE Function IncomeLevel
   ( name_in IN varchar2 )
   RETURN varchar2
IS
   monthly_value number(6);
   ILevel varchar2(20);

   cursor c1 is
     SELECT monthly_income
     FROM employees
     WHERE name = name_in;

BEGIN

   open c1;
   fetch c1 into monthly_value;
   close c1;

   IF monthly_value &amp;lt;= 4000 THEN
      ILevel := 'Low Income';

   ELSIF monthly_value &amp;gt; 4000 and monthly_value &amp;lt;= 7000 THEN
      ILevel := 'Avg Income';

   ELSIF monthly_value &amp;gt; 7000 and monthly_value &amp;lt;= 15000 THEN
      ILevel := 'Moderate Income';

   ELSE
      ILevel := 'High Income';

   END IF;

   RETURN ILevel;

END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 IF-THEN-ELSE 문 예제에서는 IncomeLevel이라는 함수를 만들었습니다. 이 함수에는 name_in이라는 매개변수가 하나 있으며 varchar2를 반환합니다. 이 함수는 직원의 이름을 기준으로 소득 수준을 반환합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-Procedures&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-WHILE-LOOP&quot;&gt;다음 : WHILE LOOP &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>IF-THEN-ELSE</category>
      <category>PLSQL</category>
      <category>TechOnTheNet</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/173</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-IF-THEN-ELSE#entry173comment</comments>
      <pubDate>Sun, 11 Jun 2023 22:08:21 +0900</pubDate>
    </item>
    <item>
      <title>PLSQL Procedures</title>
      <link>https://rizdev.tistory.com/entry/PLSQL-Procedures</link>
      <description>&lt;h1&gt;Oracle / PLSQL : 프로시저&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle/PLSQL에서 프로시저를 생성하고 삭제하는 방법을 설명합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;프로시저 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 언어에서와 마찬가지로 Oracle에서도 자신만의 프로시저를 만들 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 프로시저를 만드는 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;oxygene&quot;&gt;&lt;code&gt;CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]

IS
    [declaration_section]

BEGIN
    executable_section

[EXCEPTION
    exception_section]

END [procedure_name];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로시저나 함수를 만들 때 매개변수를 정의할 수 있습니다. 선언할 수 있는 매개변수에는 세 가지 유형이 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;IN&lt;/b&gt; - 프로시저 또는 함수에서 매개 변수를 참조할 수 있습니다. 프로시저 또는 함수에서 매개변수 값을 덮어쓸 수 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OUT&lt;/b&gt; - 프로시저나 함수에서 매개 변수를 참조할 수 없지만 프로시저나 함수에서 매개 변수 값을 덮어쓸 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IN OUT&lt;/b&gt; - 프로시저 또는 함수에서 매개변수를 참조할 수 있으며 프로시저 또는 함수에서 매개변수 값을 덮어쓸 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예제&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 프로시저를 만드는 방법의 예를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;CREATE OR REPLACE Procedure UpdateCourse
   ( name_in IN varchar2 )

IS
   cnumber number;

   cursor c1 is
   SELECT course_number
    FROM courses_tbl
    WHERE course_name = name_in;

BEGIN

   open c1;
   fetch c1 into cnumber;

   if c1%notfound then
      cnumber := 9999;
   end if;

   INSERT INTO student_courses
   ( course_name,
     course_number )
   VALUES
   ( name_in,
     cnumber );

   commit;

   close c1;

EXCEPTION
WHEN OTHERS THEN
   raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 프로시저를 UpdateCourse라고 합니다. 이 프로시저에는 name_in이라는 매개변수가 하나 있습니다. 이 프로시저는 코스 이름을 기반으로 course_number를 조회합니다. 일치하는 항목을 찾지 못하면 코스 번호가 99999로 기본 설정됩니다. 그런 다음 student_courses 테이블에 새 기록을 삽입합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;프로시저 삭제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 프로시저를 생성한 후에는 데이터베이스에서 프로시저를 제거해야 할 수도 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 프로시저를 삭제하는 구문은 다음과 같습니다.&lt;/p&gt;
&lt;pre class=&quot;cal&quot;&gt;&lt;code&gt;DROP PROCEDURE procedure_name;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;procedure_name&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;삭제하려는 프로시저의 이름입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예제&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle에서 프로시저를 삭제하는 방법의 예를 살펴보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;cal&quot;&gt;&lt;code&gt;DROP PROCEDURE UpdateCourse;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예제에서는 UpdateCourse라는 프로시저를 삭제합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;PLSQL-Functions&quot;&gt;&amp;lt; 이전&lt;/a&gt; / &lt;a href=&quot;PLSQL-IF-THEN-ELSE&quot;&gt;다음 : IF-THEN-ELSE &amp;gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Database/Oracle PLSQL</category>
      <category>PLSQL</category>
      <category>Procedures</category>
      <category>TechOnTheNet</category>
      <category>프로시저</category>
      <author>Riz.Dev</author>
      <guid isPermaLink="true">https://rizdev.tistory.com/172</guid>
      <comments>https://rizdev.tistory.com/entry/PLSQL-Procedures#entry172comment</comments>
      <pubDate>Sat, 10 Jun 2023 19:51:34 +0900</pubDate>
    </item>
  </channel>
</rss>