Advertisement
gurumutant

Contoh Blok PL/SQL Dasar

Nov 14th, 2017
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.83 KB | None | 0 0
  1. -- Execute statement ini sekali saja :
  2. SET SERVEROUTPUT ON;
  3.  
  4. -- Source pembuatan Procedure hello (contoh while)
  5. CREATE OR REPLACE PROCEDURE hello (jml IN NUMBER) IS
  6.  teks VARCHAR2(20) := 'Hello World';
  7.  i NUMBER(3) := 1;
  8. BEGIN
  9.     WHILE i <= jml LOOP
  10.      DBMS_OUTPUT.put_line(i || ' ' || teks);
  11.      i := i+1;
  12.     END LOOP;
  13. END;
  14. -- contoh pemanggilan procedure
  15. EXECUTE hello(5);
  16.  
  17.  
  18. -- contoh blok PL/SQL Procedure untuk menaikkan gaji
  19. -- menggunakan kondisional
  20. CREATE OR REPLACE PROCEDURE naikkan_gaji IS
  21. BEGIN
  22.    DBMS_OUTPUT.put_line  ('Kenaikan Gaji Baru:');
  23.    FOR t IN (SELECT * FROM emp)
  24.    LOOP
  25.     IF (t.sal > 1500) THEN
  26.       DBMS_OUTPUT.put_line(t.sal+(0.1 * t.sal));
  27.     ELSE
  28.       DBMS_OUTPUT.put_line(t.sal+(0.15 * t.sal));
  29.     END IF;
  30.    END LOOP;
  31. END;
  32. -- contoh pemanggilan procedure
  33. EXECUTE naikkan_gaji
  34.  
  35.  
  36. -- contoh FUNCTION
  37. CREATE OR REPLACE FUNCTION luas_segitiga(
  38.     alas IN FLOAT,
  39.     tinggi IN FLOAT)
  40.     RETURN FLOAT
  41.     IS
  42. BEGIN
  43.     RETURN 0.5 * alas * tinggi;
  44. END;
  45. -- contoh penggunaan function :
  46. SELECT luas_segitiga(4,7) FROM dual;
  47.  
  48.  
  49. -- Source PL/SQL Anonymous Block, non Procedure/Function
  50. DECLARE
  51.    gaji emp.sal%TYPE;
  52. BEGIN
  53.    SELECT sal INTO gaji
  54.    FROM emp WHERE empno = &kode_pegawai;
  55.    IF gaji > 1500 THEN
  56.          DBMS_OUTPUT.put_line('Gajinya besar, yaitu '||gaji);
  57.    ELSE
  58.          DBMS_OUTPUT.put_line('Gajinya kecil, yaitu '||gaji);
  59.    END IF;
  60. END;
  61.  
  62. -- SCHEMA : HR. Bukan SCOTT.
  63. -- Function untuk mendeteksi standar gaji
  64. CREATE OR REPLACE FUNCTION standargaji(gaji IN NUMBER)
  65.     RETURN VARCHAR2 IS
  66. BEGIN
  67.     IF gaji >= 10000 THEN
  68.         RETURN 'Tinggi';
  69.     ELSE
  70.         RETURN 'Biasa';
  71.     END IF;
  72. END;
  73. -- contoh penggunaan function standargaji
  74. SELECT standargaji(11000) FROM dual;
  75. SELECT
  76.     employee_id,
  77.     first_name,
  78.     last_name,
  79.     salary,
  80.     standargaji(salary) AS standar_gaji
  81. FROM employees;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement