오라클 데이터베이스 --- PLSQL

SET SERVEROUTPUT ON은
BEGIN
-打印输出
DBMS_OUTPUT.PUT_LINE ( '안녕하세요 모두!');
종료;

DECLARE의
v_name VARCHAR2 (10)
v_sal 번호 (7,2)
v_hiredate 날짜,
CONSTANT NUMBER를 c_tax_rate (3,2) : 0.02 =;
v_tax_sal 번호 (7,2)는,
초기 상태 TRUE 부울 v_valid;
시작
은 SELECT ENAME, SAL, HIREDATE을
v_name INTO는 v_sal는 v_hiredate
EMP에서을
하며 WHERE EMPNO = 7369
계산 세금 -
* = v_sal c_tax_rate; v_tax_sal
- 인쇄물
DBMS_OUTPUT.PUT_LINE (v_name || '임금'|| v_sal || '직원의 날짜를 '|| v_hiredate ||'세금은 다음과 같습니다 '|| v_tax_sal)
는 IF가 THEN v_valid
DBMS_OUTPUT.PUT_LINE ('; 확인 ')
끝은 IF;
끝;

- 기준 변수
DECLARE의
v_name이 유형 %를 emp.ename는,
v_sal emp.sal 타입 %가,
선두
, SAL은 SELECT ENAME을
v_sal 상기 INTO의 v_name을
EMP FROM
상기 WHERE EMPNO = 7788
- 출력
'|| (DBMS_OUTPUT.PUT_LINE 임금 v_name을 그들은 : '|| v_sal);
끝;

- 레코드 변수
DECLARE
emp_record에 EMP의 %의 ROWTYPE는,
선두
* INTO가 emp_record EMP의 FROM WHERE EMPNO = 7788 선택 (SELECT)를
- 출력
; DBMS_OUTPUT.PUT_LINE (|| emp_record.sal emp_record.ename || '임금')
끝에 ;

-算术运算符
선언
v_num1 번호 (3) = 10;
v_num2 NUMBER (3) = 2;
BEGIN
DBMS_OUTPUT.PUT_LINE을 (+ v_num1 v_num2);
DBMS_OUTPUT.PUT_LINE (v_num1-v_num2);
DBMS_OUTPUT.PUT_LINE (v_num1 v_num2 *);
DBMS_OUTPUT.PUT_LINE (v_num1 / v_num2);
DBMS_OUTPUT.PUT_LINE (v_num1 ** v_num2);
종료;

-关系运算符
선언
v_num1 번호 (2) = (N1);
v_num2 NUMBER (2) = (N2);
BEGIN
(v_num1 = v_num2) IF THEN
DBMS_OUTPUT.PUT_LINE ( 'NUM1等于NUM2');
ELSIF (v_num1 <v_num2) THEN
DBMS_OUTPUT.PUT_LINE ( 'NUM1小于NUM2');
ELSIF (v_num1> v_num2) THEN
DBMS_OUTPUT.PUT_LINE ( 'NUM1大于NUM2');
END IF;

IF (v_num1 <> v_num2) THEN
DBMS_OUTPUT.PUT_LINE ( 'NUM1不等于NUM2');
END IF;
종료;

- 비교 연산자
DECLARE
- 및 교체 변수 N1 인, 프로그램을 실행할 때하는 값에 대한 프롬프트
v_num1 번호 (2) : = N1,
선두
(. 간의 v_num1 5, 10)이 IF를 THEN
DBMS_OUTPUT.PUT_LINE ( 'NUM1 5~10 사이에 ');
ELSE
DBMS_OUTPUT.PUT_LINE ('하지 NUM1 사이 5~10 ').
결국은 IF;

에 v_num1는 IF ((3,8,10) THEN)
DBMS_OUTPUT.PUT_LINE ('동일 3,8,10에 NUM1 값 ');
ELSE
DBMS_OUTPUT.PUT_LINE ('값 NUM1 동일 3,8,10 없습니다 ')
단부는 IF;

는 IS NULL v_num1는 IF () THEN
DBMS_OUTPUT.PUT_LINE ('빈 NUM1 ');
ELSE
DBMS_OUTPUT .PUT_LINE ( 'NUM1 비어 있지');
끝은 IF;
끝;

-逻辑运算符
선언
v_b1의 부울 : = N1;
v_b2 부울 : N2 =;
BEGIN
IF (v_b1 및 v_b2) THEN
DBMS_OUTPUT.PUT_LINE ( 'AND - 참');
END IF;

IF THEN (v_b1 또는 v_b2)
DBMS_OUTPUT.PUT_LINE ( 'OR - 참');
END IF;

IF (NOT v_b1) THEN
DBMS_OUTPUT.PUT_LINE ( 'v_b1取反为TRUE');
END IF;
종료;

- 이하 3000의 급료, 임금 및 직원 이름 디스플레이 임금을 결정하기 위해 직원 수를 입력합니다.
- 간단한 IF 문
DECLARE의
v_name이 유형 %를 emp.ename;
v_sal emp.sal 타입 %
시작
은 SELECT ENAME, SAL
v_sal 상기 INTO의 v_name를
EMP에서
여기서 EMPNO = NO]
THEN v_sal <3000 IF
DBMS_OUTPUT.PUT_LINE (v_name를 || ' 임금 : '|| v_sal)
끝은 IF;
끝;


SELECT * FROM EMP;

- 급여를 결정하기 위해 직원 수를 입력 3000의 임금보다 적은 임금은 200 장미와 인상이 다른 직원이 직원의 이름과 급여를 보여 직원의 이름을 표시합니다.
- 더블 지점 문
DECLARE의
v_name는 유형 %를 empnew.ename,
v_sal empnew.sal 유형 %
v_empno % empnew.empno 유형 : & = NO;
Begin (시작)
은 SELECT ENAME을, SAL
v_name INTO, v_sal
empnew FROM
WHERE EMPNO = v_empno;
는 IF v_sal < THEN 3000
empnew 세트 업데이트 SAL + = 200 SAL은 WHERE EMPNO = v_empno;
COMMIT가;
DBMS_OUTPUT.PUT_LINE (v_name를 || '레이즈');
ELSE의
DBMS_OUTPUT.PUT_LINE (v_name || 임금 '|| v_sal)를;
끝은 IF;
말;

empnew로부터 SELECT *;


- 중간 소득, 고소득 다른 화면을 표시, 저소득층, 이하 6000의 임금을 보여 2000 년보다 임금 이하의 임금을 결정하기 위해 직원 수를 입력합니다.
- 여러 가지 문
DECLARE의
v_name는 유형 %를 empnew.ename,
v_sal empnew.sal 유형 %

Begin (시작)
은 SELECT ENAME을, SAL
INTO의 v_name, v_sal
empnew FROM
하며 WHERE 및 EMPNO = NO
는 IF v_sal <2000 THEN
DBMS_OUTPUT.PUT_LINE (v_name || '의 임금은 '|| v_sal ||'저소득층 ');
ELSIF v_sal <6000 THEN
DBMS_OUTPUT.PUT_LINE (v_name ||'급여는 '|| v_sal ||'중간 소득 ');
ELSE
DBMS_OUTPUT.PUT_LINE (v_name || '임금'|| v_sal || '고소득');
끝은 IF;
끝;

/ *
- 이하 3000의 급료, 임금 및 직원 이름 디스플레이 임금을 결정하기 위해 직원 수를 입력합니다.
- 간단한 IF 문
DECLARE의
v_name이 유형 %를 emp.ename;
v_sal emp.sal 타입 %
시작
은 SELECT ENAME, SAL
v_sal 상기 INTO의 v_name를
EMP에서
여기서 EMPNO = NO]
THEN v_sal <3000 IF
DBMS_OUTPUT.PUT_LINE (v_name를 || ' 임금 : '|| v_sal)
끝은 IF;
끝;


SELECT * FROM EMP;

- 급여를 결정하기 위해 직원 수를 입력 3000의 임금보다 적은 임금은 200 장미와 인상이 다른 직원이 직원의 이름과 급여를 보여 직원의 이름을 표시합니다.
- 더블 지점 문
DECLARE의
v_name는 유형 %를 empnew.ename,
v_sal empnew.sal 유형 %
v_empno % empnew.empno 유형 : & = NO;
Begin (시작)
은 SELECT ENAME을, SAL
v_name INTO, v_sal
empnew FROM
WHERE EMPNO = v_empno;
는 IF v_sal < THEN 3000
empnew 세트 업데이트 SAL + = 200 SAL은 WHERE EMPNO = v_empno;
COMMIT가;
DBMS_OUTPUT.PUT_LINE (v_name를 || '레이즈');
ELSE의
DBMS_OUTPUT.PUT_LINE (v_name || 임금 '|| v_sal)를;
끝은 IF;
말;

empnew로부터 SELECT *;


- 중간 소득, 고소득 다른 화면을 표시, 저소득층, 이하 6000의 임금을 보여 2000 년보다 임금 이하의 임금을 결정하기 위해 직원 수를 입력합니다.
- 여러 가지 문
DECLARE의
v_name는 유형 %를 empnew.ename,
v_sal empnew.sal 유형 %

Begin (시작)
은 SELECT ENAME을, SAL
INTO의 v_name, v_sal
empnew FROM
하며 WHERE 및 EMPNO = NO
는 IF v_sal <2000 THEN
DBMS_OUTPUT.PUT_LINE (v_name || '의 임금은 '|| v_sal ||'저소득층 ');
ELSIF v_sal <6000 THEN
DBMS_OUTPUT.PUT_LINE (v_name ||'급여는 '|| v_sal ||'중간 소득 ');
ELSE
DBMS_OUTPUT.PUT_LINE (v_name || '임금'|| v_sal || '고소득');
끝은 IF;
끝;
* /

- 판정 레벨 스테이지 레벨에 입력 속하며, 지문
동등한 비교를 --CASE
DECLARE의
(1). v_grade 숯불 = '아니오'는,
선두
v_grade 경우
WHEN 'A'THEN
DBMS_OUTPUT.PUT_LINE ( '우수')를;
'B'THEN
DBMS_OUTPUT.PUT_LINE ( '중간');
'C'THEN
( '일반적인')를 DBMS_OUTPUT.PUT_LINE;
ELSE
DBMS_OUTPUT.PUT_LINE ( '오타')
단부 경우,
단부;

- 만약 5000 미만 임금 이점 플러스 50 A, 80 보조금 급여 2500 미만이면, 급여 급여 1500 미만이면, 결정 플러스 100 개 부여된다 급여 수득 사원 번호를 입력 플러스
--CASE 비 동등성 비교
DECLARE
v_sal empnew 타입 % .sal;
v_empno % empnew.empno 유형 : & = NO;
선두
은 SELECT SAL
v_sal INTO를
empnew 발을
여기서 EMPNO = NO;
경우
v_sal <1,500 THEN
를 Where v_empno 업데이트 SET empnew COMM = NVL (COMM, 0) = +100 EMPNO ;
WHEN v_sal <2,500 THEN
업데이트 SET empnew COMM = NVL (COMM, 0) = v_empno +80 WHERE EMPNO;
WHEN v_sal <5000 THEN
WHERE EMPNO v_empno 업데이트 SET empnew COMM = NVL (COMM, 0) = +50;
--commit ;
최종 경우,
끝;

empnew에서 *를 선택;

-基本循环
선언
v_cnt의 INT : = 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE (v_cnt)를;
EXIT WHEN v_cnt = 10;
v_cnt = v_cnt + 1;
END LOOP;
종료;

--while가循环
선언
v_cnt의 INT를 = 1;
BEGIN
동안 v_cnt <= 10 LOOP
DBMS_OUTPUT.PUT_LINE (v_cnt);
v_cnt = v_cnt + 1;
END LOOP;
종료;

--for循环
BEGIN
난 IN 1..10 LOOP FOR REVERSE
DBMS_OUTPUT.PUT_LINE (Ⅰ);
END LOOP;
종료;

-嵌套循环
선언
v_result의 INT를;
BEGIN
<< >> outter는
1..5 루프의 I
<< >> 인터
1..5의 LOOP FOR IN J
v_result : = 1;
EXIT의 outter는 I = 4;
END LOOP의 인터;
DBMS_OUTPUT.PUT_LINE ( '内'|| v_result);
최종 루프 outter는;
DBMS_OUTPUT.PUT_LINE ( '外'|| v_result);
종료;

--continue
DECLARE의
v_cnt의 INT : = 0;
BEGIN
LOOP의
v_cnt을 : v_cnt = + 1;
계속 WHEN v_cnt = 5;
DBMS_OUTPUT.PUT_LINE (v_cnt);
EXIT WHEN v_cnt = 10;
END LOOP;
종료;

--GOTO가语句
선언
v_cnt의 INT를 = 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE (v_cnt)를;
IF v_cnt = 10 THEN
--EXIT;
GOTO end_loop;
END IF;
v_cnt = v_cnt + 1;
END LOOP;
<< >> end_loop
DBMS_OUTPUT.PUT_LINE ( '循环结束');
종료;

--NULL는语句
선언
v_sal empnew.sal % TYPE 단계;
v_name의 empnew.ename %의 유형;
BEGIN
SELECT ENAME, SAL
v_name INTO, v_sal을
empnew FROM
WHERE EMPNO = 없음;
IF v_sal <3000 THEN
UPDATE 설정 empnew 통신 = NVL (통신, 0) + 0.2 * SAL WHERE ENAME = v_name;
범하다;
DBMS_OUTPUT.PUT_LINE (v_name || '的奖金更新了');
ELSE
NULL;
END IF;
종료;

empnew에서 *를 선택;

 

추천

출처www.cnblogs.com/xiaomifeng1010/p/11111978.html