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

📄 do.pkg

📁 OReilly Oracle PL SQL Programming第4版源代码
💻 PKG
字号:
CREATE OR REPLACE PACKAGE DO
IS
   -- Substitute for DBMS_OUTPUT.PUT_LINE
   -- Includes an overloading for XMLType,
   -- so Oracle9i is required unless you 
   -- comment out that overloading
   
   /* Toggles output from do.pl */
   PROCEDURE turn_on;

   PROCEDURE turn_off;

   /* The overloaded versions of the pl procedure */

   /* Display a date. Can specify a format mask or use the default. */
   PROCEDURE pl (
      date_in   IN   DATE,
      mask_in   IN   VARCHAR2 := 'Month DD, YYYY - HH:MI:SS PM'
   );

   /* Display a number. */
   PROCEDURE pl (number_in IN NUMBER);

   /* Display a string. */
   PROCEDURE pl (char_in IN VARCHAR2);

   /* Display two strings. */
   PROCEDURE pl (
      char1_in     IN   VARCHAR2,
      char2_in   IN   VARCHAR2
   );

   /* Display a string followed by a number. */
   PROCEDURE pl (
      char_in     IN   VARCHAR2,
      number_in   IN   NUMBER
   );

   /* Display a string followed by a date. */
   PROCEDURE pl (
      char_in   IN   VARCHAR2,
      date_in   IN   DATE,
      mask_in   IN   VARCHAR2 := 'Month DD, YYYY - HH:MI:SS PM'
   );

   /* Display a Boolean value. */
   PROCEDURE pl (boolean_in IN BOOLEAN);

   /* Display a string and then a Boolean value. */
   PROCEDURE pl (
      char_in      IN   VARCHAR2,
      boolean_in   IN   BOOLEAN
   );
   
   PROCEDURE pl (xml_in IN SYS.XMLType);
   
END DO;
/
CREATE OR REPLACE PACKAGE BODY DO
IS
   /* 
  || Flag that determines whether output should be displayed.
  */
   show_output_flag   BOOLEAN := TRUE ;

   /*------------------- Private Modules -------------------*/

   PROCEDURE display_line (line_in IN VARCHAR2)
   IS
   BEGIN
      IF    show_output_flag
      THEN
         DBMS_OUTPUT.put_line (line_in);
      END IF;
   END;

   FUNCTION boolean_string (
      boolean_in IN BOOLEAN, char_in IN VARCHAR2 := NULL)
      RETURN VARCHAR2
   IS
   BEGIN
      IF boolean_in
      THEN
         RETURN    char_in
                || ' '
                || 'TRUE';
      ELSE
         RETURN    char_in
                || ' '
                || 'FALSE';
      END IF;
   END;

   /*--------------- Toggle Output Modules ---------------*/

   PROCEDURE turn_on
   IS
   BEGIN
      show_output_flag := TRUE ;
   END;

   PROCEDURE turn_off
   IS
   BEGIN
      show_output_flag := FALSE ;
   END;

   /*------------------ The pl Procedures ----------------*/

   PROCEDURE pl (
      date_in   IN   DATE,
      mask_in   IN   VARCHAR2 := 'Month DD, YYYY - HH:MI:SS PM'
   )
   IS
   BEGIN
      display_line (TO_CHAR (date_in, mask_in));
   END;

   PROCEDURE pl (number_in IN NUMBER)
   IS
   BEGIN
      display_line (number_in);
   END;

   PROCEDURE pl (char_in IN VARCHAR2)
   IS
   BEGIN
      display_line (char_in);
   END;

      /* Display two strings. */
   PROCEDURE pl (
      char1_in     IN   VARCHAR2,
      char2_in   IN   VARCHAR2
   )
   IS
   BEGIN
      display_line (   char1_in
                             || ': '
                             || char2_in);
   END;
   
   PROCEDURE pl (
      char_in     IN   VARCHAR2,
      number_in   IN   NUMBER
   )
   IS
   BEGIN
      display_line (   char_in
                             || ': '
                             || TO_CHAR (number_in));
   END;

   PROCEDURE pl (
      char_in   IN   VARCHAR2,
      date_in   IN   DATE,
      mask_in   IN   VARCHAR2 := 'Month DD, YYYY - HH:MI:SS PM'
   )
   IS
   BEGIN
      display_line (   char_in
                             || ': '
                             || TO_CHAR (date_in, mask_in));
   END;

   PROCEDURE pl (boolean_in IN BOOLEAN)
   /*
  || I will even let you look at Boolean variables!
  */
   IS
   BEGIN
      display_line (boolean_string (boolean_in));
   END;

   PROCEDURE pl (
      char_in      IN   VARCHAR2,
      boolean_in   IN   BOOLEAN
   )
   IS
   BEGIN
      display_line (boolean_string (boolean_in, char_in));
   END;
   
   PROCEDURE pl (xml_in IN SYS.XMLType)
   IS
   BEGIN
      display_line (xml_in.getstringval ());
   END;
END DO;
/


/*======================================================================
| Supplement to the third edition of Oracle PL/SQL Programming by Steven
| Feuerstein with Bill Pribyl, Copyright (c) 1997-2002 O'Reilly &
| Associates, Inc. To submit corrections or find more code samples visit
| http://www.oreilly.com/catalog/oraclep3/
*/

⌨️ 快捷键说明

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