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

📄 betwnstr.sf

📁 OReilly Oracle PL SQL Programming第4版源代码
💻 SF
字号:
CREATE OR REPLACE FUNCTION betwnstr (
   string_in   IN   VARCHAR2,
   start_in    IN   INTEGER,
   end_in      IN   INTEGER,
   inclusive   IN   BOOLEAN := TRUE
)
   RETURN VARCHAR2
IS 
   v_start      INTEGER := start_in;
   v_numchars   INTEGER := ABS (end_in) - ABS (start_in) + 1;
BEGIN
   IF    string_in IS NULL
      OR NVL (start_in, 0) = 0
      OR (start_in < 0 AND end_in > 0)
      OR (start_in > 0 AND end_in < 0)
      OR (start_in < 0 AND end_in > start_in)
      OR (start_in > 0 AND end_in < start_in)
   THEN
      RETURN NULL;
   ELSE
      IF v_start < 0
      THEN
         v_start := end_in;
      ELSE
         v_start := start_in;
      END IF;

      IF NOT NVL (inclusive, FALSE )
      THEN
         v_start := v_start + 1;
         v_numchars := v_numchars - 2;
      END IF;

      IF v_start > end_in OR v_numchars < 1
      THEN
         RETURN NULL;
      ELSE
         RETURN (SUBSTR (string_in, v_start, v_numchars));
      END IF;
   END IF;
END;
/


/*======================================================================
| 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 + -