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

📄 dyncalc.sf

📁 OReilly Oracle PL SQL Programming第4版源代码
💻 SF
字号:
CREATE OR REPLACE FUNCTION dyncalc (
   oper_in IN VARCHAR2,
   nargs_in IN INTEGER := 0,
   arg1_in IN VARCHAR2 := NULL,
   arg2_in IN VARCHAR2 := NULL,
   arg3_in IN VARCHAR2 := NULL,
   arg4_in IN VARCHAR2 := NULL,
   arg5_in IN VARCHAR2 := NULL
   )
   RETURN VARCHAR2
   AUTHID CURRENT_USER
IS
   v_code VARCHAR2(32767) := 'BEGIN :outcome := ' || oper_in;
   retval VARCHAR2(32767);
BEGIN
   IF nargs_in = 0
   THEN
      EXECUTE IMMEDIATE v_code || '; END;' 
         USING OUT retval;
   ELSIF nargs_in = 1
   THEN
      EXECUTE IMMEDIATE v_code || '(:1); END;'
         USING OUT retval, arg1_in;
   ELSIF nargs_in = 2
   THEN
      EXECUTE IMMEDIATE v_code || '(:1, :2); END;'
         USING OUT retval, arg1_in, arg2_in;
   ELSIF nargs_in = 3
   THEN
      EXECUTE IMMEDIATE v_code || '(:1, :2, :3); END;'
         USING OUT retval, arg1_in, arg2_in, arg3_in;
   ELSIF nargs_in = 4
   THEN
      EXECUTE IMMEDIATE v_code || '(:1, :2, :3, :4); END;'
         USING OUT retval, 
            arg1_in, arg2_in, arg3_in, arg4_in;
   ELSIF nargs_in = 5
   THEN
      EXECUTE IMMEDIATE 
         v_code || '(:1, :2, :3, :4, :5); END;'
         USING OUT retval, 
            arg1_in, arg2_in, arg3_in, arg4_in, arg5_in;   
   END IF;
   
   RETURN retval; 
EXCEPTION
   WHEN OTHERS
	THEN
	    DBMS_OUTPUT.PUT_LINE (SQLERRM);
       RETURN NULL;
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 + -