⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 number.sql

📁 介绍Oracle PL SQL编程
💻 SQL
字号:
/*
 * Number.sql
 * Chapter 3, Oracle10g PL/SQL Programming
 * by Ron Hardman, Mike McLaughlin, Scott Urman
 *
 * This script demonstrates the NUMBER datatype
 */

exec clean_schema.trigs
exec clean_schema.procs
exec clean_schema.tables

CREATE TABLE precision (
   value NUMBER(38,5),
   scale NUMBER(10));

INSERT INTO precision (value, scale)
   VALUES (12345, 0);
INSERT INTO precision (value, scale)
   VALUES (123456, 0);
INSERT INTO precision (value, scale)
   VALUES (123.45, 0);
INSERT INTO precision (value, scale)
   VALUES (12345, 2);
INSERT INTO precision (value, scale)
   VALUES (123.45, 2);
INSERT INTO precision (value, scale)
   VALUES (12.345, 2);
INSERT INTO precision (value, scale)
   VALUES (1234.5, 2);

commit;

SET SERVEROUTPUT ON

DECLARE
   v_integer NUMBER(5);
   v_scale_2 NUMBER(5,2);
   v_real NUMBER;

   CURSOR scale_0_cur
   IS
      SELECT value
      FROM precision
      WHERE scale = 0;

   CURSOR scale_2_cur
   IS
      SELECT value
      FROM precision
      WHERE scale = 2;
BEGIN

   DBMS_OUTPUT.PUT_LINE('====== PRECISION 5 SCALE 0 =====');

   OPEN scale_0_cur;

   -- Loop thorugh all records that have a scale of zero
   LOOP
   FETCH scale_0_cur INTO v_real;
   EXIT WHEN scale_0_cur%NOTFOUND;

   -- Assign different values to the v_integer variable 
   --  to see how it handles it
   BEGIN
      DBMS_OUTPUT.PUT_LINE('	');
      DBMS_OUTPUT.PUT_LINE('Assigned: '||v_real);
      
      v_integer := v_real;

      DBMS_OUTPUT.PUT_LINE('Stored: '||v_integer);
   EXCEPTION
      WHEN OTHERS
      THEN
         DBMS_OUTPUT.PUT_LINE('Exception: '||sqlerrm);
   END;
   END LOOP;

   CLOSE scale_0_cur;

   DBMS_OUTPUT.PUT_LINE('	');
   DBMS_OUTPUT.PUT_LINE('====== PRECISION 5 SCALE 2 =====');

   OPEN scale_2_cur;

   -- Loop through all records that have a scale of 2
   LOOP
   FETCH scale_2_cur INTO v_real;
   EXIT WHEN scale_2_cur%NOTFOUND;

   -- Assign different values to the v_scale_2 variable 
   --  to see how it handles it
   BEGIN
      DBMS_OUTPUT.PUT_LINE('	');
      DBMS_OUTPUT.PUT_LINE('Assigned: '||v_real);
      
      v_scale_2 := v_real;

      DBMS_OUTPUT.PUT_LINE('Stored: '||v_scale_2);
   EXCEPTION
      WHEN OTHERS
      THEN
         DBMS_OUTPUT.PUT_LINE('Exception: '||sqlerrm);
   END;
   END LOOP;

   CLOSE scale_2_cur;

END;
/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -